Task 28_1. Строки "близнецы"

Task 28_1. Строки "близнецы"

UniLecs

Задача: две строки можно сделать одинаковыми, выполняя определенное количество операций перестановок символов над одной или обеими строками.

Возможны следующие операции:

1. SwapEven: обмен символом с индексом с четным номером с символом в другом индексе с четным номером.

2. SwapOdd: обмен символом с индексом с нечетным номером с символом в другом индексе с нечетным номером.

Например, строки "abcd", "cdab" можно сделать одинаковыми, переставив символы: 

 - "c" (символ с нечетным индексом 1) / "a" (символ с нечетным индексом 3) 

 - "d" (символ с четным индексом 2) / "b" (символ с четным индексом 4)

В другому примере строки "abcd", "bcda" нельзя сделать одинаковыми,  т.к. например символ "a" в первом слове стоит на нечетном индексе (1), во втором слове на четном (4).

Написать функцию, ктр проверит возможно ли сделать две строки одинаковыми.

Реализация:

  1. Прислал @mrmeison
@mrmeison, реализация на JS

https://gist.github.com/unilecs/1d915e664d1b3474be4d7e375e504caa


2. Прислал @Comandante_Oblachko

@Comandante_Oblachko, реализация на JS

https://gist.github.com/unilecs/4ad31bd4e39e5db379657634351e495f


3. Напоследок реализация на CoffeeScript от @pakrulin

@pakrulin, реализация на CoffeeScript

https://gist.github.com/unilecs/b2cd63009d12057d73fd02051ba7e469

Report Page