40数字の配列は一度だけ(パイソン)を表示

タイトル説明

二つの数の整数型配列に加えて、他の数字が二回表示されます。これら二つの図が表示されるだけで検索するプログラムを作成してください。
 
思考
図は、排他的論理和である後に2つの数の配列は、一度だけ、そのように発生するので、その結果は、これら2つの数のXOR結果そのような1212345547仕上げXORです図3は、111 ^ 7011 ^ 100 =です
最終的な結果で、右から3番目に見出さ1の最初の発生を見つけるために左に左右で得られた結果は、両方とも0であると、100は、各アレイと本来の動作の数を取り出します行う操作で得られた結果は、それによれば、XORの二つのサブ配列番号2つの配列のそれぞれが得られるように、2つのサブアレイを見つけることができることは、1であります
3,7魔法の数で登場
1  - * -コーディング:UTF-8 - * - 
2  クラスソリューション:
 3      リターン[B] ABは2つの数字が表示される
4。     DEF FindNumsAppearOnce(セルフ、アレイ):
 5。          ここで書き込みコード壁紙
6。         IF(アレイ)<2でlen 7。             戻りなし
 8。          tmpnum = なし
 9。         ため NUM :配列
 10              IF tmpnum == :なし
 。11                  tmpnum = NUM
 12である             13である                  tmpnum ^ = NUM
14          カウント= 0
 15          ながら tmpnum%2 == 0:
 16              tmpnum = tmpnum >> 1つの
 17              カウント+ = 1枚の
 18          マスク= 1 << カウント
 19          firstNumを= なし
 20          secondNum = なし
 21           NUM アレイ:
 22              場合はマスクNUM&= = 0:
 23                  もし firstNum == なし:
 24                      firstNum = NUM
 25                  26                     firstNum ^ = NUM
 27              28                  もし secondNum == なし:
 29                      secondNum = NUM
 30                  31                      secondNum ^ = NUM
 32          リターンfirstNum、secondNum
 33         

2019年12月23日夜02時58分21秒

おすすめ

転載: www.cnblogs.com/NPC-assange/p/12083797.html