Encontre X
Eu fui inspirado por questões matemáticas nas quais se pede para "Encontrar X" para uma determinada forma. Originalmente, eu teria o desafio de imprimir a localização xey do caractere 'x' em uma String. Mas eu supunha que isso seria muito simples. Portanto, considerei o contexto em que eles estavam normalmente e decidi que encontrar o comprimento de uma linha ao lado de x parecia apropriado.
Dada uma entrada de string contendo um diagrama de 'linhas' ascii, bem como um único 'x' e caracteres potencialmente indesejados, imprima o comprimento da única linha que possui um 'x' diretamente correspondente a ela.
Exemplos
Entrada:
|
|
|x
|
|
Ouput:
5
Entrada:
|\
| \x
| \
|___\
Resultado:
4
Entrada:
Diagram of a Wobbly Line:
IRRELEVANTTEXT____
____ ____/
\___/ X ;)
x
Resultado:
3
Entrada:
______________
/ ____________ \
|/ __________ \|
||/ ________ \||
|||/ ______ \|||
||||/ \||||
|||||/ x |||||
|||||\_____/||||
||||\_______/|||
|||\_________/||
||\___________/|
\_____________/
Resultado:
5
Notas
- Os caracteres de linha válidos são
\/_|
\
conecta a parte superior esquerda e a parte inferior direita de si mesma./
conecta a parte superior direita e a parte inferior esquerda de si mesma._
conecta a esquerda e a direita de si mesma|
conecta a parte superior e inferior de si- Uma linha será sempre reta e consistirá apenas em um dos caracteres de linha repetidos n vezes.
- O x sempre será minúsculo e sempre será o único no diagrama.
- Adjecente refere-se ao x ser exatamente um caractere acima, abaixo ou além.
- O x sempre estará próximo a exatamente uma linha.
- As guias nunca aparecerão na entrada.
- Entrada e Saída pode ser qualquer formato aceitável.
- Este é o Code Golf, o código mais curto ganha!
- DIVERTA-SE. FAÇA. DIVIRTA-SE.
@
respostas do teste de estresse.Respostas:
JavaScript (ES6),
165, 155 bytesEDIT: Inline x e w , para economizar mais alguns bytes.
Golfe (assume que a entrada é preenchida com espaços para formar um retângulo)
Expandido
Teste
Exemplo de saída (se você executar isso no console das Ferramentas do desenvolvedor do Google Chrome)
fonte
Python 3,
428408385378 bytesTrabalhando, mas tem muito potencial para ser jogado. Estou um pouco enferrujado.
Assume que a entrada é preenchida com espaços para formar um retângulo.
EDIT: Obrigado ao @Artyer pela economia de 23 bytes!
EDIT2: Uau, perdi completamente uma economia de 6 bytes. Economizou mais 1 trocando os lados de uma verificação de igual.
Versão expandida com explicação:
fonte
<!-- language-all: lang-py -->
para destacar a sintaxe.*i,=map(list,inputtt.split('\n'))
(*i,
fazi
uma lista em vez de um mapa) (-6 mais bytes)Lua, 480 bytes
Lua, sendo a linguagem detalhada, não supera a resposta do Python. Mas não precisa.
Semelhante à minha implementação de referência, mas dá uma chance real ao golfe e faz algumas coisas de maneira um pouco mais inteligente do que antes. Ainda assim, provavelmente poderia ser um pouco melhor ainda.
Com comentários.
fonte
JavaScript (ES6), 175
Supondo que a entrada seja preenchida com espaços para formar um retângulo.
Menos golfe
Pontos de teste em vez de espaços para maior clareza
fonte