Un aspect du test de résistance des mots de passe est l'exécution de lettres adjacentes sur le clavier. Dans ce défi, un programme doit être créé qui renvoie true
si une chaîne contient des séries de lettres adjacentes.
Qu'est-ce qui compte comme une série de lettres adjacentes?
Pour cette version simplifiée d'un testeur de force de mot de passe, une série de caractères adjacents est composée de 3 lettres ou plus qui sont côte à côte dans une seule direction (gauche, droite, au-dessus ou en dessous) sur un clavier QWERTY. Aux fins de ce défi, la disposition du clavier ressemble à ceci:
1234567890
QWERTYUIOP
ASDFGHJKL
ZXCVBNM
Dans le diagramme ci Q
- dessus est en dessous 1
mais pas en dessous 2
, donc une chaîne qui contient 1qa
ou aq1
n'importe où à l'intérieur ferait le retour du programme true
, mais 2qa
ne le ferait pas.
Contribution
La chaîne de mot de passe à vérifier. Il ne contiendra que les caractères [0-9a-z]
ou [0-9A-Z]
(votre choix).
Production
Le programme doit renvoyer une valeur véridique si le mot de passe contient une ou plusieurs séries de clés adjacentes, ou falsey s'il n'en contient aucune.
Exemples
Les entrées suivantes doivent afficher true:
asd
ytrewq
ju7
abc6yhdef
Et ces entrées devraient produire false:
abc
aaa
qewretry
zse
qwdfbn
pas
Règles
- Les réponses peuvent être des programmes ou des fonctions complets.
- Les failles standard ne sont pas autorisées.
- C'est le code-golf , le score le plus bas (en octets) gagne!
Réponses:
Pyth -
666260 octetsApproche assez simple. Vérifie si l'une des sous-chaînes len 3 est dans l'une des rotations du clavier. Sera utilisé l'encodage de base pour le clavier.
Suite de tests .
la source
Japt , 78 octets
Japt est une version abrégée de Ja vaScri pt . Interprète
Sorties
0
pour les cas de falsey; sinon, un entier positif. Le?
devrait être remplacé par le caractère Unicode non imprimable U + 0086, ou si vous ne voulez pas vous poser tous ces problèmes, justeas
.Comment ça fonctionne
la source
C #, 227
0 est falsey, 1 est véridique. Concaténé toutes les clés horizontales et verticales et inversées, et vérifie si l'un des 3 caractères d'entrée est contenu à l'intérieur.
C # est vraiment verbeux, je dois plonger dans d'autres langues :(
la source
PHP, 173 + 1 octets
Exécuter en tant que pipe avec une
-nR
entrée en minuscules ou l' essayer en ligne .la source
Clojure, 156 octets
C'était une tâche assez intéressante à mettre en œuvre.
la source