Computer >> Máy Tính >  >> Lập trình >> Python

Số nguyên ngược trong Python

Giả sử chúng ta có một số nguyên có dấu 32 bit. Chúng ta phải lấy số và đảo ngược các chữ số. Vì vậy, nếu số giống như 425, thì đầu ra sẽ là 524. Một điều khác chúng ta phải ghi nhớ rằng số có dấu, vì vậy có thể có một số số âm. Vì vậy, nếu số là –425, thì nó sẽ là –524.

Ở đây chúng tôi có một số giả định. Chúng tôi đã giả định rằng chúng tôi đang sử dụng trong miền của số nguyên có dấu 32-bit. Vì vậy, phạm vi sẽ là [-232 đến 232 - 1]. Vì vậy, nếu số không nằm trong phạm vi, thì hàm sẽ trả về 0.

Để giải quyết vấn đề này, chúng tôi sẽ sử dụng Mã Python. Lúc đầu, chúng tôi sẽ chuyển đổi số nguyên đã cho thành chuỗi. Vì vậy, nếu ký tự đầu tiên trong chuỗi là '-', thì số là số âm, vì vậy hãy đảo ngược từ chỉ số 1 sang độ dài chỉ mục - 1. Và cuối cùng chuyển chúng thành số nguyên trước khi trả về, đối với số dương, chỉ cần đảo ngược chuỗi và làm cho nó thành số nguyên trước khi trả về. Trong mỗi trường hợp, chúng tôi sẽ kiểm tra xem số có nằm trong phạm vi số nguyên 32 bit hay không. Nếu nó vượt quá phạm vi, thì chỉ cần trả về 0.

Hãy cho chúng tôi xem việc triển khai để hiểu rõ hơn

Ví dụ

class Solution(object):
   def reverse(self, x):
      """
      :type x: int
      :rtype: int
      """
      x = str(x)
      if x[0] == '-':
         a = int('-' + x[-1:0:-1])
         if a >= -2147483648 and a<= 2147483647:
            return a
         else:
            return 0
         else:
            a = int(x[::-1])
            if a >= -2147483648 and a<= 2147483647:
               return a
            else:
               return 0
ob1 = Solution()
print(ob1.reverse(-425))

Đầu vào

print(ob1.reverse(-425))

Đầu ra

-524