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

ตัวเลขเดี่ยวใน Python

สมมติว่าเรามีอาร์เรย์ A ในอาร์เรย์นี้มีตัวเลขหลายตัวที่เกิดขึ้นสองครั้ง มีเพียงองค์ประกอบเดียวที่พบได้เพียงครั้งเดียว เราต้องหาองค์ประกอบนั้นจากอาร์เรย์นั้น สมมติ A = [1, 1, 5, 3, 2, 5, 2] ผลลัพธ์จะเป็น 3 เนื่องจากมีตัวเลขแต่ละตัวสองครั้ง เราสามารถทำ XOR เพื่อตัดทอนองค์ประกอบนั้นออกได้ เพราะเรารู้ว่า y XOR y = 0

วิธีการแก้ปัญหา

  • ตั้งตัวแปร res = 0
  • สำหรับแต่ละองค์ประกอบ e ในอาร์เรย์ A ทำ res = res XOR e
  • คืนค่า res

ตัวอย่าง

class Solution(object):
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ans = nums[0]
        for i in range(1, len(nums)):
            ans ^= nums[i]
        return ans

ob1 = Solution()
print(ob1.singleNumber([1,1,5,3,2,5,2]))

อินพุต

nums = [1,1,5,3,2,5,2]

เอาต์พุต

3