題目鏈接:https://code.mi.com/problem/list/view?id=2&cid=0&sid=26251#codearea
描述
給出N個數字。其中僅有一個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間復雜度最小。
輸入
輸入多個數字,每個數字以空格分開,回車結束
輸出
輸出內容為只出現過唯一一次的數字
輸入樣例
10 10 11 12 12 11 16
輸出樣例
16
思路
常見的思路遍歷所有數據,用map、字典去記錄每個數據的出現次數,然后輸出value為1的變量。
還有一種方法是異或,相同的數字異或結果為0,數字與0異或結果為該數字,根據該思路,直接異或一次,
最終返回的結果就是僅出現一次的數字。
代碼
# 此處可 import 模塊 """ @param string line 為單行測試數據 @return string 處理后的結果 """ def solution(line): res = 0 li = line.strip().split() for i in li: res ^= int(i) return res