Su objetivo es tomar ASCII multilínea como
| v |
* * * *
* * *
y tener una matriz que incluye todo lo que no es una estrella cambiada a una estrella (excepto los espacios [de cualquier ancho]) y la cantidad de estrellas que incluyó y la cantidad de estrellas que ahora incluye. Entonces la salida de mi ejemplo sería:
['* * *
* * * *
* * *',7,10]
o
["* * *\n* * * *\n * * *", 7, 10]
dependiendo de lo que haga tu lenguaje de código.
Este es un desafío de código de golf , por lo que gana los bytes más cortos.
Respuestas:
GolfScript, 30 caracteres
Toma la entrada de stdin. Ejemplo ( prueba en línea ):
fuente
Python -
5866 caracteresAsí que ... mi primer intento de Code Golf ...
Código:
Salida:
Variables:
i
- cadena de entradap
- patróno
- salida - eliminadoDependencias:
re
Módulo de PythonCódigo completo:
Ediciones:
import re
a la solucióno=
con impresiónr'[/\S/g]'
fue cambiado ar'\S'
(gracias @ 14mRh4X0r)fuente
re
módulo como una dependencia, pero aún es necesario incluirlo en la respuesta y la puntuación. Su programa tampoco genera el resultado como se supone que debe hacerlo (sin embargo, dado que en realidad no usa lao
variable para nada, solo puedes/o=/print/
perder tres). Aparte de eso, ¡esto se ve bien!i
variable contiene en| v | * * * * * * *
lugar de la entrada de prueba real (que incluye nuevas líneas). Dicho esto, su programa aún funciona si incluye las nuevas líneas, por lo que no es necesario cambiar su programa, solo la publicación. :)r'[/\S/g]'
podría reemplazarser'\S'
para guardar algunos caracteres.Ruby 2.0, 53 caracteres
No estoy seguro de los formatos exactos de entrada / salida requeridos. Esto toma la entrada en STDIN y formatea la salida de la siguiente manera:
Entrada:
Salida:
fuente
JavaScript (ECMASCript 6) - 51 caracteres
Asume que la variable
A
contiene la entrada ASCII multilínea. Para tomarlo del usuario, reemplace elA
conprompt()
(+7 caracteres) o como una función (nuevamente +7 caracteres):La salida es a la consola.
Prueba:
Salidas:
fuente
PHP ≥ 5.5,
846963 bytesNo hay mucho que decir sobre esto. Como no hay una especificación sobre cómo manejar la entrada / salida, supongo que el almacenamiento variable. Espera la entrada en variable
$s
y almacena la matriz en variable$a
. Lástima que esos nombres de funciones sean tan largos.fuente
Rebol, 84
Establezca
t
el texto así ...y esto volvería ...
Versión sin golf con algunas notas:
fuente
Groovy:
9692 caracteresUtiliza Groovy 2.2.1
Lecturas de STDIN. En mi humilde opinión, no es especialmente inteligente, pero bastante fácil de leer (dada su brevedad)
fuente
En JavaScript / CoffeeScript - 66 caracteres
Al igual que el ejemplo de PHP, la longitud se debe a la longitud de los nombres de las funciones
Ejemplo de uso (CoffeeScript):
fuente
[x.replace(r=/\S/g,s='*'),x.split(s).length-1,x.match(r).length]
C # - 116
El camino más corto que puedo pensar es que devuelve una matriz ...
fuente
Perl, 52 bytes
Toma entrada de entrada estándar, imprime en salida estándar.
Suponiendo que el formato de salida como describió en su pregunta, se podría acortar un poco si se permitiera un formato de salida diferente.
fuente
Javascript - 50 caracteres
Prueba
Entrada
Salida
fuente
AWK, (demasiado largo)
No soy un
awk
maestro, así que estoy seguro de que se puede mejorar. La conclusión es que me divertí mucho escribiéndola. La lucha vino con la forma de preservar lanewlines
información, pero no ponerla, 7,10]
en una nueva línea. Ese poco de lógica (NR>1{z=z "\n" $0} NR==1{z=z $0}
) me costó muchos personajes. Me interesaría ver otrosawk
enfoques en ese frente.No proporcioné el archivo al final del script, pero obviamente el uso sería
awk '{<code>}' ascii.txt
, dondeascii.txt
contiene la "entrada" de varias líneas.Salida
fuente
Java, 199 bytes
Golfizado:
Sin golf:
Correr en línea .
fuente