UniLecs #134. Пропущенный символ

UniLecs #134. Пропущенный символ

UniLecs
У какой буквы нет пары ?!

Задача: есть два одинаковых символьных массива, в одном из них удалили один символ. Вам необходимо определить, какой символ был удален.

Входные данные: два символьных массива размера N и (N-1), где N от 1 до 10^4. Элементы в массиве не повторяются.

Вывод: символ, ктр был удален в одном из массивов.

Пример: 

['a', 'b', 'c'], ['a', 'b']

Answer: 'c'

Идея: воспользуемся операцией XOR, эта операция обладает след.свойствами:

a XOR 0 = a

a XOR a = 0

a XOR b = b XOR a

(a XOR b) XOR b = a

Т.е. если применить их к набору парных одинаковых символов то мы получим 0.

Если мы применим эту операцию к набору состоящем из двух исходных массивов, то в итоге мы получим символ у ктр нет пары, т.е. как раз тот ктр и был удален.

Реализация:

C#

https://gist.github.com/unilecs/724932323d78b5c03b0074d59f67ddf1

Test:

https://dotnetfiddle.net/75pYQN

Report Page