Jednym z aspektów testu siły hasła są przebiegi sąsiednich liter na klawiaturze. W tym wyzwaniu należy utworzyć program, który zwraca, true
jeśli ciąg znaków zawiera jakiekolwiek ciągi sąsiednich liter.
Co liczy się jako ciąg sąsiednich liter?
W tej uproszczonej wersji testera siły hasła ciąg sąsiednich znaków to 3 lub więcej liter, które są obok siebie w jednym kierunku (w lewo, w prawo, powyżej lub poniżej) na klawiaturze QWERTY. Na potrzeby tego wyzwania układ klawiatury wygląda następująco:
1234567890
QWERTYUIOP
ASDFGHJKL
ZXCVBNM
Na powyższym schemacie Q
jest poniżej, 1
ale nie poniżej 2
, więc ciąg znaków, który zawiera 1qa
lub aq1
gdziekolwiek w nim, spowoduje, że program zwróci true
, ale 2qa
nie.
Wejście
Ciąg hasła do sprawdzenia. Będzie zawierać tylko znaki [0-9a-z]
lub [0-9A-Z]
(twój wybór).
Wynik
Program musi zwrócić prawdziwą wartość, jeśli hasło zawiera jeden lub więcej przebiegów sąsiednich kluczy, lub falsey, jeśli nie zawiera żadnego.
Przykłady
Następujące dane wejściowe powinny generować wartość true:
asd
ytrewq
ju7
abc6yhdef
I te dane wejściowe powinny wyprowadzać false:
abc
aaa
qewretry
zse
qwdfbn
pas
Zasady
- Odpowiedzi mogą być kompletnymi programami lub funkcjami.
- Standardowe luki są niedozwolone.
- To jest golf golfowy , wygrywa najniższy wynik (w bajtach)!
Odpowiedzi:
Pyth -
666260 bajtówCałkiem proste podejście. Sprawdza, czy którykolwiek z podciągów len 3 znajduje się w którymkolwiek z obrotów klawiatury. Będzie używał podstawowego kodowania dla klawiatury.
Pakiet testowy .
źródło
Japt , 78 bajtów
Japt to skrócona wersja Ja vaScri pt . Interpretator
Wyjścia
0
dla przypadków falsey; w przeciwnym razie dodatnia liczba całkowita.?
Powinny zostać zastąpione przez niedrukowanego char Unicode U + 0086, lub jeśli nie chcesz iść do wszystkich, że kłopoty, po prostuas
.Jak to działa
źródło
C #, 227
0 to falsey, 1 to prawda. Skonsolidowano wszystkie klucze w poziomie i pionie oraz odwrócono i sprawdza, czy zawiera którykolwiek z 3 znaków wejściowych.
C # jest bardzo gadatliwy, muszę zagłębić się w inne języki :(
źródło
PHP, 173 + 1 bajtów
Uruchom jako potok z
-nR
małymi literami lub wypróbuj online .źródło
Clojure, 156 bajtów
Było to dość interesujące zadanie do zrealizowania.
źródło