Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ย้อนกลับจำนวนเต็มใน Python


สมมติว่าเรามีเลขจำนวนเต็มแบบ 32 บิตที่มีลายเซ็น เราต้องใช้ตัวเลขและกลับหลัก ดังนั้นหากตัวเลขเช่น 425 ผลลัพธ์จะเป็น 524 อีกสิ่งหนึ่งที่เราต้องจำไว้คือตัวเลขนั้นถูกเซ็นชื่อแล้ว ดังนั้นอาจมีตัวเลขติดลบอยู่บ้าง ดังนั้นหากตัวเลขคือ –425 ก็จะเป็น –524

ที่นี่เรามีสมมติฐานบางอย่าง เราคิดว่าเรากำลังใช้ในโดเมนของจำนวนเต็มที่ลงนามแบบ 32 บิต ดังนั้นช่วงจะเป็น [-232 ถึง 232 – 1] ดังนั้นหากตัวเลขไม่อยู่ในช่วง ฟังก์ชันจะคืนค่า 0

เพื่อแก้ปัญหานี้ เราจะใช้รหัสหลาม ขั้นแรกเราจะแปลงจำนวนเต็มที่กำหนดให้เป็นสตริง ดังนั้นหากอักขระตัวแรกในสตริงคือ '-' แสดงว่าตัวเลขนั้นเป็นจำนวนลบ ดังนั้นให้ย้อนกลับจากดัชนี 1 เป็นความยาวดัชนี – 1 และสุดท้ายแปลงเป็นจำนวนเต็มก่อนที่จะส่งคืน สำหรับจำนวนบวก เพียงย้อนกลับสตริงและ ทำให้เป็นจำนวนเต็มก่อนที่จะกลับ ในแต่ละกรณี เราจะตรวจสอบว่าตัวเลขอยู่ในช่วงของจำนวนเต็ม 32 บิตหรือไม่ หากเกินช่วง ก็คืนค่า 0

มาดูการใช้งานกันให้เกิดความเข้าใจกันมากขึ้น

ตัวอย่าง

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))

อินพุต

print(ob1.reverse(-425))

ผลลัพธ์

-524