Introduciton
Некоторые из вас, возможно, поняли, что я небрежный типер при использовании моего телефона. Вот почему я хочу, чтобы вы написали программу, которая исправляет мои опечатки.
Chalkrnge
Учитывая слово с ошибкой, выведите все возможные слова, которые я хотел написать.
Typso
Основная причина моих опечаток заключается в том, что я нажимаю не на те ключи и часто нажимаю на ключ по соседству. Вот моя раскладка клавиатуры:
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
, [ space ] .
Обратите внимание, что нижний ряд , [ space ] .
никогда не будет использоваться в этом задании
По какой-то причине я делаю ошибки только по горизонтали: я бы никогда не нажал n вместо j , но мог бы нажать f вместо d .
Например, я мог бы написать слово небрежный как:
akioot
Куда я пошел слева от каждого ключа.
Однако не забывайте, что я не обязательно могу ошибиться в каждой букве слова.
Ezsmple
Допустим, вход:
vid
Возможности этого слова:
vid cid bid
vis cis bis
vif cif bif
vod cod bod
vos cos bos
vof cof bof
vud cud bud
vus cus bus
vuf cuf buf
Из них в словаре есть следующие:
cod
cud
bid
bud
bus
Так что это должно быть вашим выходом.
Rulws
В качестве словаря вы должны использовать только текстовый файл, найденный здесь: http://mieliestronk.com/corncob_lowercase.txt . Вам не нужно считать этот файл как часть вашего количества байтов.
Весь ввод будет одним словом. Вы можете отображать свой вывод любым удобным для вас способом (при условии наличия какого-либо разделителя).
Предположим, что при всем вводе вы найдете вариант, который есть в словаре.
Wibninf
Самый короткий код в байтах побеждает.
""
?Ответы:
Japt,
5047 байтовВвод - это слово, которое нужно исправить, а словарь - как строка. Проверьте это онлайн! (Примечание: вам придется вручную вставить словарь в строку.)
Как это работает
источник
Python 2,7,
161159 байтчитаемая версия
источник
.strip() for
.