Introduciton
Niektórzy z was mogli zdać sobie sprawę, że jestem niechlujny typer podczas korzystania z mojego telefonu. Dlatego chcę, żebyś napisał program, który poprawia moje literówki.
Chalkrnge
Biorąc pod uwagę źle napisane słowo, wypisz wszystkie możliwe słowa, które chciałem napisać.
Typso
Główną przyczyną moich literówek jest to, że uderzam w niewłaściwe klawisze i często uderzam w klawisz obok. Oto mój układ klawiatury:
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 ] .
Pamiętaj, że dolny rząd , [ space ] .
nigdy nie będzie używany w tym wyzwaniu
Z jakiegoś powodu popełniam błędy tylko w poziomie: nigdy nie uderzyłbym n zamiast j , ale mógłbym trafić f zamiast d .
Na przykład mógłbym przeliterować słowo niechlujny jako:
akioot
Gdzie po lewej stronie każdego klucza.
Nie zapominaj jednak, że niekoniecznie popełniam błąd przy każdej literze tego słowa.
Ezsmple
Powiedzmy, że dane wejściowe to:
vid
Możliwościami tego słowa były:
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
Spośród nich w słowniku znajdują się:
cod
cud
bid
bud
bus
To powinno być twoje wyjście.
Rulws
Powinieneś używać tylko pliku tekstowego znalezionego tutaj jako słownika: http://mieliestronk.com/corncob_lowercase.txt . Nie musisz liczyć tego pliku jako części liczby bajtów.
Wszystkie dane wejściowe będą jednym słowem. Możesz wyświetlać swoje wyniki w dowolny sposób (o ile istnieje jakiś separator).
Załóżmy, że przy wszystkich danych wejściowych znajdziesz wariant, który znajduje się w słowniku.
Wibninf
Najkrótszy kod w bajtach wygrywa.
""
?Odpowiedzi:
Japt,
5047 bajtówWejście to słowo do naprawienia, a słownik jako ciąg. Przetestuj online! (Uwaga: musisz ręcznie wkleić słownik do ciągu).
Jak to działa
źródło
Python 2.7,
161159 bajtówwersja czytelna
źródło
.strip() for
.