Um aspecto do teste de força da senha é a execução de letras adjacentes no teclado. Nesse desafio, é necessário criar um programa que retorne true
se uma sequência contiver execuções de letras adjacentes.
O que conta como uma sequência de letras adjacentes?
Para esta versão simplificada de um testador de força de senha, uma sequência de caracteres adjacentes é de três ou mais letras que estão próximas uma da outra em uma única direção (esquerda, direita, acima ou abaixo) em um teclado QWERTY. Para os propósitos deste desafio, o layout do teclado se parece com o seguinte:
1234567890
QWERTYUIOP
ASDFGHJKL
ZXCVBNM
No diagrama acima Q
está abaixo, 1
mas não abaixo 2
, portanto, uma string que contenha 1qa
ou em aq1
qualquer lugar dentro dela faria o programa retornar true
, mas 2qa
não o faria.
Entrada
A sequência de senha a ser verificada. Ele conterá apenas os caracteres [0-9a-z]
ou [0-9A-Z]
(sua escolha).
Resultado
O programa deve retornar um valor verdadeiro se a senha contiver uma ou mais execuções de chaves adjacentes ou falsey se não houver nenhuma.
Exemplos
As seguintes entradas devem gerar true:
asd
ytrewq
ju7
abc6yhdef
E essas entradas devem gerar false:
abc
aaa
qewretry
zse
qwdfbn
pas
Regras
- As respostas podem ser programas ou funções completos.
- As brechas padrão não são permitidas.
- Isso é código-golfe , a menor pontuação (em bytes) vence!
Respostas:
Pitão -
666260 bytesAbordagem bastante direta. Verifica se algum dos substrings len 3 está em alguma das rotações do teclado. Estará usando a codificação básica para o teclado.
Conjunto de Teste .
fonte
Japonês , 78 bytes
Japt é uma versão abreviada do Ja vaScri pt . Intérprete
Saídas
0
para casos de falsey; caso contrário, um número inteiro positivo. Ele?
deve ser substituído pelo caractere Unicode não imprimível U + 0086, ou, se você não quiser enfrentar esse problema, bastaas
.Como funciona
fonte
C #, 227
0 é falsey, 1 é verdade. Concatenou todas as chaves na horizontal e na vertical e inverteu e verifica se algum dos 3 caracteres de entrada está contido.
C # é realmente detalhado, precisa mergulhar em outros idiomas :(
fonte
PHP, 173 + 1 bytes
Execute como pipe com
-nR
entrada em minúscula ou experimente online .fonte
Clojure, 156 bytes
Essa foi uma tarefa bastante interessante de implementar.
fonte