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

เปรียบเทียบหมายเลขเวอร์ชันใน Python


สมมติว่าเราต้องเปรียบเทียบสองหมายเลขเวอร์ชัน version1 และ version2 หาก version1> version2 ให้คืนค่า 1; มิฉะนั้นเมื่อ version1

เราสามารถถือว่าหมายเลขรุ่นเริ่มต้นสำหรับแต่ละระดับของหมายเลขรุ่นเป็น 0 ตัวอย่างเช่น หมายเลขรุ่น 3.4 มีหมายเลขรุ่น 3 และ 4 สำหรับหมายเลขรุ่นระดับที่หนึ่งและสอง หมายเลขการแก้ไขระดับที่สามและสี่เป็นทั้ง 0

ดังนั้นหากอินพุตเป็นเหมือน version1 =“1.0.1” และ version2 =“1” ก็จะคืนค่า +1

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • version1_arr =อาร์เรย์ของตัวเลขคั่นด้วยจุดสำหรับ version1

  • version2_arr =อาร์เรย์ของตัวเลขคั่นด้วยจุดสำหรับ version2

  • สำหรับฉันอยู่ในช่วง 0 ถึงสูงสุดของขนาดของ version1_arr และขนาดของ version2_arr -

    • v1 :=version1_arr[i] if i

    • v2 :=version2_arr[i] if i

    • ถ้า v1> v2 ให้คืนค่า 1 มิฉะนั้น เมื่อ v1

  • คืนค่า 0

ตัวอย่าง (Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

class Solution:
   def compareVersion(self, version1, version2):
      versions1 = [int(v) for v in version1.split(".")]
      versions2 = [int(v) for v in version2.split(".")]
      for i in range(max(len(versions1),len(versions2))):
         v1 = versions1[i] if i < len(versions1) else 0
         v2 = versions2[i] if i < len(versions2) else 0
         if v1 > v2:
            return 1
         elif v1 <v2:
            return -1
      return 0
ob1 = Solution()
print(ob1.compareVersion("1.0.1","1.0"))

อินพุต

"1.0.1"
"1.0"

ผลลัพธ์

1