https://www.hackerrank.com/challenges/lonely-integer
1 def main(): 2 n = int(raw_input()) 3 s = dict() 4 a = 0 5 6 arr = map(int,raw_input().strip().split()) 7 for _ in range(n): 8 num = arr[_] 9 if not s.get(num):10 s.update({num:1})11 else:12 a = s.get(num)13 a += 114 s.update({num:a})15 16 for i in s:17 if s.get(i) % 2 != 0:18 PRint i19 break20 21 main()
學(xué)習(xí)
怎樣利用新的數(shù)據(jù)結(jié)構(gòu)“字典”來解決問題
//另一個(gè)方式:過濾
1 #!/usr/bin/py2 def lonelyinteger(a):3 answer = 04 answer = reduce(lambda x,y: x^y, a)5 return answer6 if __name__ == '__main__':7 a = input()8 b = map(int, raw_input().strip().split(" "))9 print lonelyinteger(b)
學(xué)習(xí)
http://jeffxie.blog.51cto.com/1365360/328207 三個(gè)過濾函數(shù)
神奇的xor運(yùn)算
異或運(yùn)算有兩個(gè)特性:
1、一個(gè)數(shù)異或本身恒等于0,如5^5恒等于0;
2、一個(gè)數(shù)異或0恒等于本身,如5^0恒等于5。
所以比如 print 0 ^ 0 ^ 1 ^ 2 ^ 1
根據(jù)結(jié)合律,所有相同的都消除為0,而0和最后孤單的值,成為孤單值本身
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注