Задавая слово (или любую последовательность букв) в качестве входных данных, вы должны интерполировать между каждой буквой так, чтобы каждая соседняя пара букв в результате также была смежной с QWERTY-клавиатурой, как если бы вы вводили ввод, гуляя по гигантской клавиатуре. Например, « yes » может стать « y tr es », « cat » может стать « c xz a wer t ».
Правила:
Это формат клавиатуры, который вы должны использовать:
q
w
e
r
t
y
u
i
o
p
a
s
d
f
g
h
j
k
l
z
x
c
v
b
n
m
Любая пара клавиш, которая касается этого макета, считается смежной. Например, «s» и «e» являются соседними, а «s» и «r» - нет.
- Вводимое слово будет состоять из любой последовательности букв. В нем будут только буквы, так что вам не придется иметь дело со специальными символами.
- Ввод может быть в любой удобной форме: стандартный ввод, строка, список и т. Д. Буквенный регистр не имеет значения; Вы можете взять все, что вам удобнее.
- Вывод может быть в любой удобной форме: стандартный вывод, строка, список и т. Д. Буквенный регистр не имеет значения, и он не должен быть согласованным.
- Любой путь через клавиатуру действителен, за исключением того, что вы не можете пересечь предыдущую букву снова, прежде чем перейти к следующей букве. Например, « hi » может стать « h j i » или « h jnbgyu i », но не « h b h u i ».
- Письмо не является соседним с самим собой, поэтому « опрос » не может стать « опросом ». Вместо этого это должно было бы стать чем-то вроде ' pol k l '.
- Никакие выходные буквы не допускаются ни до, ни после слова. Например, « был » не может стать « был » или « был dfg».
Это код гольф, выигрывает самый короткий ответ в байтах.
dewqwerty
это правильный путь дляdy
. Не могли бы вы подтвердить это?Ответы:
Japt
-g
, 23 байтаПопробуйте онлайн!
Принимает ввод как массив заглавных букв. В остальном очень похоже на другие ответы.
Объяснение:
источник
Python 2 , 83 байта
Попробуйте онлайн!
Ходит всю клавиатуру, пока не написано слово.
источник
import re
получается, что после кода, а не до?re.findall
будет оцениваться при запуске лямбды, поэтому импорт после определения лямбды в порядке. При этом импортировать раньше проще, просто нет необходимостиPython 2 , 274 байта (оптимальное решение)
296300302308315319324327328430432байта-4 байта благодаря mypetlion
Попробуйте онлайн!
Это решение дает максимально короткий выход. Клавиатура преобразуется в график, используемый для поиска кратчайшего пути для вычисления выходной строки:
источник
JavaScript (ES6), 70 байт
Та же стратегия, что и у TFeld.
Попробуйте онлайн!
источник
05AB1E , 43 байта
Не правильный язык для этой задачи, так как он не может использовать регулярные выражения, как другие ответы ..
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
Древесный уголь , 48 байтов
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Получить строку
qwertyuioplkmjnhbgvfcdxsza
.Найдите положение первого символа слова. Этот индекс обычно равен одному последнему символу, только что достигнутому, но это значение подделывает первую итерацию цикла для печати первого символа слова.
Обведите каждого персонажа
Вычислите, сколько символов нужно напечатать, чтобы включить следующий символ слова и цикл столько раз.
Выведите следующий символ, циклически индексируемый и увеличивайте индекс.
источник