Расстояние Хэмминга между двумя строками одинаковой длины - это количество позиций, в которых соответствующие символы различны. Если строки не имеют одинаковую длину, расстояние Хэмминга не определяется.
Вызов
Напишите программу или функцию, которая находит наибольшее расстояние Хэмминга среди всех пар строк из списка строк, дополненных согласно требованиям, описанным ниже.
Персонажи будут изнутри a-zA-Z0-9
.
Строки не могут быть равными по длине, поэтому для каждого сравнения более короткая строка должна быть дополнена следующим образом:
- оберните строку с начала столько раз, сколько необходимо, чтобы соответствовать требуемой длине
- меняйте регистры букв каждый раз за нечетное время (1, 3, 5 и т. д.)
- оставить вещи
a-zA-Z
без изменений при упаковке
Например, допустим, вам нужно добавить 5-символьную строку, ab9Cd
чтобы она заканчивалась 18 символами. Вы бы в конечном итоге с:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
с ^
добавленными под 1 и 3 обертками, чтобы выделить изменения в регистре.
Ввод, вывод
Формат ввода / вывода гибкий. Можно предположить, что на входе есть как минимум две строки, и что все строки будут иметь хотя бы один символ.
Вывод является целым числом.
правила
Это код-гольф . Стандартные правила применяются.
Контрольные примеры
[ "a", "b" ] => 1
[ "a", "b", "c" ] => 1
[ "a", "a", "c" ] => 1
[ "abc", "abcd" ] => 1
[ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] => 17
[ "a", "Aaa", "AaaA", "aAaAa", "aaaaaaaaaaaaaa", "AAaAA", "aAa" ] => 8
["AacaAc", "Aab"] => 2
Ссылочная реализация
Я проверил примеры с (совершенно не загнанным) R-кодом, который вы можете попробовать здесь, чтобы сравнить любые другие примеры, которые вы можете попробовать с вашим кодом.
["AacaAc", "Aab"] => 2
. Целенаправленный гольф на мой ответ Jelly провалил бы этот случай, но прошел бы все остальные.