這題真的想很久,也測試很久,如果每個字都要判斷那真的要寫一大堆,而且也大概會錯,後來看了很多文章才找出一個辦法,就是以二進制去判斷是否重複,也就是位元運算才解出來。
解這些題目時,並不是甚麼最佳化解,出發點是以能了解題目在說甚麼,解題方式是目前自己可以理解並解答完成的模式去走,先解的出來,未來再一步步朝著更高一階去進行,所以請別太苛責啦!!
小雷的LonelyInteger Solution :
'''
題目 :
找出arr中唯一數
範圍 :
index唯一且是奇數
1 <= n < 100
0 <= a[i] <= 100
0 <= i < n
解題方向 :
以二進制度判斷是否重複
沒有重複的抓出來
'''
def LonelyInteger(arr) :
# 二進制0000 0000
not_rep = 0
for i in arr :
# 轉換二進制判斷是否有重複
not_rep ^= i
print("not_rep = ", not_rep)
if __name__ == "__main__" :
arr = [1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]
LonelyInteger(arr)
沒有留言:
張貼留言