Seu objetivo é usar ASCII multilinha como
| v |
* * * *
* * *
e tenha uma matriz que inclua tudo o que não é uma estrela alterada para uma estrela (exceto espaços com qualquer largura) e o número de estrelas incluídas e o número de estrelas que agora inclui. Portanto, a saída do meu exemplo seria:
['* * *
* * * *
* * *',7,10]
ou
["* * *\n* * * *\n * * *", 7, 10]
dependendo do que sua linguagem de código faz.
Este é um desafio de código-golfe , portanto os bytes mais curtos vencem!
Respostas:
GolfScript, 30 caracteres
Retorna a entrada de stdin. Exemplo ( teste online ):
fonte
Python -
5866 caracteresSooo ... minha primeira tentativa de Code Golf ...
Código:
Resultado:
Variáveis:
i
- string de entradap
- padronizaro
- saída - removidaDependências:
re
Módulo PythonCódigo completo:
Editar% s:
import re
à soluçãoo=
por impressãor'[/\S/g]'
foi alterado parar'\S'
(obrigado @ 14mRh4X0r)fonte
re
módulo como uma dependência, mas ainda é necessário incluí-lo na resposta e na pontuação. Seu programa também não gera o resultado como deveria (no entanto, como você não usa ao
variável para nada, podes/o=/print/
perder apenas três). Fora isso, isso parece bom!i
variável contém em| v | * * * * * * *
vez da entrada de teste real (que inclui novas linhas). Dito isto, seu programa ainda funcionará se você incluir as novas linhas, para que seu programa não precise ser alterado, apenas a postagem. :)r'[/\S/g]'
pode ser substituído porr'\S'
para salvar alguns caracteres.Ruby 2.0, 53 caracteres
Não tenho certeza dos formatos exatos de entrada / saída necessários. Isso recebe entrada no STDIN e formata a saída da seguinte maneira:
Entrada:
Resultado:
fonte
JavaScript (ECMASCript 6) - 51 caracteres
Assume que a variável
A
contém a entrada ASCII com várias linhas. Para retirá-lo do usuário, substituaA
porprompt()
(+7 caracteres) ou como uma função (novamente +7 caracteres):A saída é para o console.
Teste:
Saídas:
fonte
PHP ≥ 5,5,
846963 bytesNão há muito a dizer sobre isso. Como não há especificação de como lidar com entrada / saída, estou assumindo o armazenamento variável. Espera a entrada na variável
$s
e armazena a matriz na variável$a
. Pena que esses nomes de função sejam tão longos.fonte
Rebol, 84
Defina
t
como o texto assim ....e isso retornaria ...
Versão ungolfed com algumas notas:
fonte
Groovy:
9692 caracteresUsa o Groovy 2.2.1
Lê de STDIN. IMHO, não especialmente inteligente, mas bastante fácil de ler (dada a sua brevidade)
fonte
Em JavaScript / CoffeeScript - 66 caracteres
Como no exemplo do PHP, o comprimento é devido ao comprimento dos nomes das funções
Exemplo de uso (CoffeeScript):
fonte
[x.replace(r=/\S/g,s='*'),x.split(s).length-1,x.match(r).length]
C # - 116
A maneira mais curta que consigo pensar em retornar uma matriz ..
fonte
Perl, 52 bytes
Leva a entrada da entrada padrão, imprime na saída padrão.
Supondo que o formato de saída como você descreveu na sua pergunta, poderia ser um pouco menor se um formato de saída diferente fosse permitido.
fonte
Javascript - 50 caracteres
Teste
Entrada
Resultado
fonte
AWK, (muito longo)
Como não sou
awk
mestre, tenho certeza de que isso pode ser melhorado. O ponto principal é que eu me diverti escrevendo! A luta surgiu com a forma de preservar os dadosnewlines
de entrada, mas não colocar, 7,10]
em uma nova linha. Essa parte da lógica (NR>1{z=z "\n" $0} NR==1{z=z $0}
) me custou muitos caracteres. Eu estaria interessado em ver outrasawk
abordagens nessa frente.Não forneci o arquivo no final do script, mas obviamente o uso seria
awk '{<code>}' ascii.txt
, ondeascii.txt
contém a "entrada" de várias linhas.Resultado
fonte
Java, 199 bytes
Golfe:
Sem golfe:
Execute online .
fonte