Escreva um código para descobrir se uma execução de peças do Tetris pode ser gerada pelo algoritmo oficial do Tetris. Menos bytes ganha.
Os jogos oficiais do Tetris geram a sequência de peças que caem de uma maneira especial. As sete peças IJLOSTZ
são descartadas em uma ordem aleatória, depois outra permutação aleatória é descartada, e assim por diante.
JTLOISZ STJOLIZ LISJOTZ ...
Este exemplo contém a sequência de peças contígua
SZSTJOLIZLIS
Observe que ele atravessa os limites de um grupo de 7. Mas, a corrida de pedaços
SZOTLZSOJSIT
não pode ser uma substring de nenhuma sequência do Tetris, portanto nunca pode ser vista em um jogo oficial do Tetris.
Entrada: uma sequência de letras não vazia IJLOSTZ
.
Saída: Um valor Truthy ou Falsey para se a entrada é uma subcadeia de uma sequência que pode ser gerada pelo gerador aleatório oficial do Tetris, ou seja, de uma concatenação de permutações das sete letras.
Casos de teste:
Verdade:
T
JJ (unique breakdown: J J)
JTJ (possible breakdown: JT J)
LTOZIJS
SZSTJOLIZLIS (possible breakdown: SZ STJOLIZ LIS)
JTLOISZSTJOLIZLISJOTZ (possible breakdown: JTLOISZ STJOLIZ LISJOTZ)
LIJZTSLIJZTS (unique breakdown: LIJZTS LIJZTS)
Falso:
SZOTLZSOJSIT
ZZZ
ZIZJLJ
ZJLJLZITSOTLISOJT
JTLOISZSTJOLIZLISJOTZLJTSZLI
IOJZSITOJZST
LIJZTSLIJZTSL
Entre os melhores
Cortesia de Martin Büttner .