Un aspecto de la prueba de seguridad de la contraseña es la ejecución de letras adyacentes en el teclado. En este desafío, se debe crear un programa que regrese true
si una cadena contiene alguna serie de letras adyacentes.
¿Qué cuenta como una serie de letras adyacentes?
Para esta versión simplificada de un probador de seguridad de contraseña, una serie de caracteres adyacentes son 3 o más letras que están una al lado de la otra en una sola dirección (izquierda, derecha, arriba o abajo) en un teclado QWERTY. Para el propósito de este desafío, la distribución del teclado se ve así:
1234567890
QWERTYUIOP
ASDFGHJKL
ZXCVBNM
En el diagrama de arriba Q
está debajo 1
pero no debajo 2
, por lo que una cadena que contiene 1qa
o en aq1
cualquier lugar dentro de él haría que el programa regrese true
, pero 2qa
no lo haría.
Entrada
La cadena de contraseña para verificar. Solo contendrá los caracteres [0-9a-z]
o [0-9A-Z]
(su elección).
Salida
El programa debe devolver un valor verdadero si la contraseña contiene una o más ejecuciones de claves adyacentes, o falsey si no contiene ninguna.
Ejemplos
Las siguientes entradas deberían dar como resultado verdadero:
asd
ytrewq
ju7
abc6yhdef
Y estas entradas deberían generar falso:
abc
aaa
qewretry
zse
qwdfbn
pas
Reglas
- Las respuestas pueden ser programas completos o funciones.
- Las lagunas estándar no están permitidas.
- Este es el código de golf , gana la puntuación más baja (en bytes).
Respuestas:
Pyth -
666260 bytesEnfoque bastante sencillo. Comprueba si alguna de las subcadenas len 3 se encuentra en alguna de las rotaciones del teclado. Utilizará la codificación base para el teclado.
Test Suite .
fuente
Japt , 78 bytes
Japt es una versión abreviada de Ja vaScri pt . Interprete
Salidas
0
para casos de falsey; de lo contrario, un entero positivo. El?
debe ser reemplazado por el carbón no imprimible Unicode U + 0086, o si no quiere ir a todos esos problemas, simplementeas
.Cómo funciona
fuente
C #, 227
0 es falsey, 1 es verdadero. Concatena todas las teclas horizontal y vertical, y se invierte, y comprueba si contiene alguno de los 3 caracteres de entrada.
C # es realmente detallado, tengo que sumergirme en otros idiomas :(
fuente
PHP, 173 + 1 bytes
Ejecutar como canalización con
-nR
entrada en minúsculas o probarlo en línea .fuente
Clojure, 156 bytes
Esta fue una tarea bastante interesante de implementar.
fuente