Inspirado por esta pergunta sobre a embalagem neste formato.
Ocasionalmente, vejo palavras cruzadas completas e, como sou, não me incomodo em descobrir quais eram as soluções para as pistas.
Entrada:
- Uma string 2D (qualquer formato, nova linha separada, lista 2d etc.)
- Quadrados em branco serão representados com um
(caractere de espaço)
- Todos os outros quadrados estarão no alfabeto minúsculo.
- Você pode assumir que a entrada será preenchida com espaços para formar um retângulo
Resultado:
- Cada palavra encontrada
- Você deve procurar palavras ao longo e para baixo
- As palavras terão pelo menos duas letras
- Se houver palavras duplicadas, você deverá produzi-las sempre que aparecerem
- Você não precisa fazer nenhuma validação
- As palavras podem ser exibidas em qualquer ordem
- Nenhuma regra estrita de formatação
Casos de teste:
word
e e
step
t d
word, step, west, reed
---
pies
not
no
wasp
pies, not, no, wasp, in, eons, stop
---
igloo
n
word
igloo, word, on
d
que fazj
juntar-se em novas linhas, que ainda são picados porc ... )
CJam, 14 bytes
Um bloco sem nome que espera uma lista de cadeias (preenchidas) no topo da pilha e deixa uma lista de palavras.
Teste aqui.
Explicação
fonte
JavaScript (ES6), 83 bytes
fonte
Pitão , 18 bytes
Experimente online!
Entrada de amostra:
Saída de amostra:
Como funciona:
fonte
Haskell, 58 bytes
Exemplo de uso:
f ["pies"," not"," no","wasp"]
->["pies", "not", "no", "wasp", "in", "eons", "stop"]
.Como funciona: divida cada uma das linhas da entrada e sua transposição em espaços em uma única lista de palavras. Mantenha aqueles que correspondem
(_:_:_)
, ou seja, tenha pelo menos duas letras.fonte
C ++ 14,
209207201 bytesQuantidade ridiculamente alta de bytes ... mas tudo bem. Matriz de transposição, string dividida. Fácil. Pena que nenhuma função nativa para transposição
Ungolfed:
Como usá-lo (observe que você deve aplicar o preenchimento conforme a pergunta):
fonte
Pyke, 9 bytes
Experimente aqui!
Ou 7 bytes pré-modificados
Experimente aqui!
fonte