O desafio
O objetivo deste desafio é determinar se uma determinada String pode ser digitada usando apenas uma linha de um teclado QWERTY padrão do Reino Unido.
Isto é code golf
, a solução mais curta em bytes vence!
IO
A entrada será uma única sequência de zero ou mais caracteres no intervalo decimal ASCII de 32 a 126, inclusive. Você pode assumir que, para esse desafio, uma String vazia não requer digitação e, portanto, pode ser digitada usando uma única linha.
Você pode considerar a entrada como uma sequência, lista de caracteres ou forma equivalente para o seu idioma.
A saída deve ser um valor verdadeiro para qualquer String que pode ser digitada usando uma única linha, ou falsey para uma que não pode.
Layout do teclado
Para esclarecer qualquer ambiguidade sobre o que está abaixo o layout padrão do teclado, há uma lista de teclas disponíveis em cada linha, incluindo teclas superiores alternativas (acessadas usando shift).
- Linha 1
- Padrão:
`1234567890-=
- Padrão:
- Linha 2
- Padrão:
qwertyuiop[]
- Padrão:
- Linha 3
- Padrão:
asdfghjkl;'#
- Maiúsculas:
ASDFGHJKL
- Especial: Caps Lock
- Padrão:
- Linha 4
- Padrão:
\zxcvbnm,./
- Alternar:
|<>?
- Maiúsculas:
ZXCVBNM
- Especial: Turno
- Padrão:
- Linha 5
- Especial: Barra de espaço
As teclas superiores alternativas somente podem ser pressionadas se Shift também estiver na mesma linha, e as teclas maiúsculas somente podem ser acessadas através de Caps Lock ou Shift. Você realmente só pode usar uma linha de teclado!
Casos de teste
-> true (empty string)
45-2=43 -> true (line 1)
qwerty -> true (line 2)
tryitout -> true (line 2)
Qwerty -> false (no shift or caps on line 2)
#sad -> true (line 3)
AsDf -> true (caps lock used)
@sDF -> false (no shift for alternate upper)
zxcvbn? -> true (line 4)
zxc vbn -> false (spacebar on separate line)
123abc -> false (multiple lines)
-> true (just space bar)
!!! -> false (exclamation marks cannot be printed by a single line)