Suponha um teclado simples com este layout:
1 2 3 4 5 6 7 8 9 0
A B C D E F G H I J
K L M N O P Q R S T
U V W X Y Z . , ? !
O padrão de teclado de Peter pode ser gerado começando no canto superior esquerdo do teclado e exibe os três primeiros caracteres e uma nova linha. Ele muda sobre um caractere e exibe a segunda, terceira e quarta tecla. Quando chega ao final de uma linha, continua no final da próxima linha e recua, até atingir o início dessa linha e depois avançar na próxima linha, e assim sucessivamente, até chegar ao início da última linha. .
Este é o padrão de teclado de Peter:
123
234
345
456
567
678
789
890
90J
0JI
JIH
IHG
HGF
GFE
FED
EDC
DCB
CBA
BAK
AKL
KLM
LMN
MNO
NOP
OPQ
PQR
QRS
RST
ST!
T!?
!?,
?,.
,.Z
.ZY
ZYX
YXW
XWV
WVU
Escreva um programa que não aceite entrada e exiba o padrão do teclado de Peter. O programa deve ser menor que 152 bytes , ou seja, o tamanho da string que ele gera.
Isso é código de golfe, então a solução mais curta vence.
[1..9 0 J..A K..T ! ? , . Z..U].
echo {1..9} "0" {J..A} {K..T} '!?,.' {Z..U}|sed 's/ //g'no bash, mas já precisa de 13 caracteres para anexar um comando sed, para remover espaços em branco. Isso gera 57 caracteres, e nenhum triplo foi construído até agora. Com o comando hold do sed, deve ser possível, mas em 6 caracteres, vencer a solução perl?