配列の中に奇数回出現する1つの整数値
codewarsというので遊んでいたら,他人の良い回答を見つけた。
問題 整数の配列が与えられる。その中に1つだけ奇数回出現する整数値が存在する。それを求めよ。 例)[1,3,5,2,6,8,4,3,1,5,2,6,8,3] -> 3
色々とやり方はあると思うけれど,XORを使う方法がなるほどと思った。 対象の整数以外は全て偶数回出現する,というのを利用して,XORとればそれは0になる。 reduceはpython3からfunctoolsに入ったみたい。map/fileterは標準なのに変な感じする。
from operator import xor from functools import reduce seq = [1,3,5,2,6,8,4,3,1,5,2,6,8,3] return reduce(xor, seq)