En ese desafío tienes que resolver ese desafío.
El concurso ha terminado! Verifica el final de la pregunta
Especificaciones:
- Escriba el código más pequeño (Cualquier idioma *).
- El puntaje de una respuesta es la suma de:
- Longitud del código sin espacios en blanco .
- Número de respuestas usando ese mismo idioma al cuadrado.
- Longitud del nombre del idioma más importante en el concurso menos la longitud de su idioma.
- Votos a favor menos Votos a favor (alias menos Total de votos)
- Escriba la posición de los usuarios y la puntuación.
- Cada usuario puede escribir solo una respuesta.
- El puntaje más bajo gana.
Pruebas:
Entonces, al final del concurso, una posible entrada podría ser (STDIN):
Las columnas son: nombre de usuario, idioma, longitud del código (sin espacios en blanco) y TotalVotes
UserA Python 100 1
UserB Perl 30 2
UserC Java 500 3
UserD Brainfuck 499 4
UserE Perl 29 5
Si su nombre de usuario tiene espacios como "Mi nombre de usuario", se convertirá en "MyUserName", por lo que la entrada siempre tendrá exactamente 4 columnas .
La salida será (STDOUT):
1 UserE 33
2 UserB 37
3 UserA 103
4 UserD 496
5 UserC 503
Explicación:
User P N^2 L V
A 100 1 3 -1
B 30 4 5 -2
C 500 1 5 -3
D 499 1 0 -4
E 29 4 5 -5
Brainfuck es el nombre más grande con 9 caracteres ( 9 - 9 = 0
).
Perl y Java tienen 4 caracteres ( 9 - 4 = 5
).
Python tiene 6 caracteres ( 9 - 6 = 3
).
Perl tiene 2 entradas, por lo que cada una obtiene 4 puntos extra.
Acerca de los idiomas:
El nombre del idioma debe contener solo letras en inglés (es decir, [A-Za-z]) y las que no encajan deben "traducirse" a otra cosa.
Al final del concurso, cada idioma debe tener su representación (puede proponer mejores representaciones)
Ejemplos:
Python3 -> Python
Ruby1.9 -> Ruby
Shell Script -> Shell
C++ -> Cpp
C# -> CSharp
><> -> Fish
Fecha límite: 20 de agosto de 2011 00:00 UTC
Al final del concurso, el ganador debe usar su programa para encontrar al ganador. Se permite a los no ganadores usar sus programas para encontrar al ganador y decirle que use su programa para encontrar al ganador. :)
¡El ganador (ver arriba) obtiene la respuesta aceptada!
* El lenguaje Whitespace tiene la ventaja injusta de poder introducir una complejidad ilimitada sin penalizar el recuento de caracteres. Las respuestas escritas en espacios en blanco pueden estar en el concurso pero no pueden ganar.
Si puede hacer la lógica de su programa en espacios en blanco , tampoco puede ganar. Ese es un tema subjetivo, pero si su programa puede aumentar considerablemente de tamaño sin ser penalizado, cae en esa condición.
Entrada final
Orden alfabético de nombres (a partir del 20 de agosto de 2011 UTC 00:00)
boothby Sage 41 9
Harpyon Python 203 4
JBernardo Python 184 7
JoeyAdams PostgreSQL 225 6
jpjacobs AWK 269 4
Lowjacker Ruby 146 2
PeterTaylor Golfscript 82 4
rmackenzie CommonLisp 542 2
shesek Javascript 243 3
userunknown Scala 252 1
Como las respuestas tanto mías como de boothby no pueden ganar, el ganador debe proclamarse ganador editando esta pregunta y publicando el resultado final a continuación.
Salida final
1 boothby 39
2 PeterTaylor 79
3 Lowjacker 151
4 JBernardo 185
5 Harpyon 207
6 JoeyAdams 220
7 shesek 241
8 userunknown 257
9 jpjacobs 273
10 rmackenzie 541
Respuestas:
Golfscript, 83 caracteres (82 sin contar espacios en blanco)
Explicación:
fuente
Salvia:
484241 no espacios en blanco (60246 bytes en total)Solo para ser un pinchazo:
Tenga en cuenta que la primera línea debe ser equivalente a
s='\t'
, pero el bloque de código SE traduce la pestaña a 4 espacios.El espacio en blanco se descomprime para:
Tenga en cuenta que mi uso de
[0..len(inputs)-1]
garantiza que este no sea un script de Python, ya que Sage es un superpython *. Desafortunadamente, el ejecutivo recurre a Python ... así que tengo que prepararlo.Edición 1: división en pestañas, no en nuevas líneas: ¿qué estaba pensando? edición 2: facilitó el código para los ojos y recicló la pestaña de división presionando otra 'nueva línea' en el espacio en blanco
* ok, no del todo: rompemos xor
fuente
Pitón, 184
Por eso amo los espacios.
¡Es mucho más legible!
fuente
PostgreSQL - 225 caracteres no espaciales
242 → 225: Subconsultas reemplazadas con cláusulas de ventanas .
probado en 9.2devel
Uso y salida:
fuente
Python 2 -
210203caracteres no espacialesUso y salida:
fuente
x.split()
(eso también se eliminará\n
)AWK,
277269 caracteres no espacialesSe usa
in
para cortar 8 caracteres.Versión espaciada y versión comentada:
uso:
fuente
sed '/#/ d' meta.awk|sed ':a;$!N;s/\n//;ta;s/\s//g;'|wc -c
para contar personajes.Ruby, 146 caracteres + 4 espacios
fuente
JavaScript, 243 caracteres
Más tiempo que la mayoría de las otras soluciones ... pero lo mejor que pude encontrar en JavaScript.
Uso
La entrada debe estar en una variable J. Por ejemplo, abra una consola y escriba:
CoffeScript, 177 caracteres
Sobre la misma lógica, en CoffeScript:
fuente
length
atributo utilizando una variable y subíndices.Lisp común - 546
(cuando el niño golfizado consolida paréntesis, sin contar espacios)
Muy golfizado, mi solución común de lisp fue y es la más larga en el tablero. Así que decidí hacer un poco de trampa escribiendo un gestor de arranque significativamente más corto y reclamando eso como mi presentación.
(Considero que la presentación de @ Boothby es un precedente a favor de este comportamiento)Muchas gracias a Peter Taylor por su ayuda para exprimir hasta el último char de este bootstrapper.
BASH - 35
Uso : cat ./test0 | bash ./btstrp.sh
Joey Adams señaló que esta no es una solución justa porque puedo "aumentar arbitrariamente la complejidad de su solución sin un aumento correspondiente en el tamaño del código", un punto que no se expresa claramente en la especificación.
fuente
$REPLY
. Tratarwhile read x;do a=$x"\n"$a;done
. Y debería poder eliminar los espacios después de la|
s en la última línea. En otra nota, no estoy seguro de que usar una dirección IP interna sea muy útil: no funcionará para nadie más.wget -q http://url/l.lsp ;cat - |clisp l.lsp
Scala
269 266252 sin espacios en blanco y líneas nuevas.Invocación:
actualizaciones:
mi solución:
*) fuera de concurso
fuente
stdin
lugar defromFile(System.in)
.