¿Reconoces el logo de PPCG? se ve así, cuando haces un arte ascii de ello.
+---+
|PCG|
+---+
v
Ahora, en este Código Golf, creará un código que crea logotipos para otros sitios, similar al logotipo de PPCG.
Lo que debe hacer
La cadena "acortada" será la cadena, con todas las letras mayúsculas y números en la cadena de entrada (que sería PPCG
cuando la cadena de entrada es Programming Puzzles & Code Golf
)
La caja" (
+---+
| |
+---+
v
) debe encajar perfectamente en la cadena acortada. (No más grande ni más pequeño)
Además, la v
parte debe estar exactamente 1 abajo y 1 izquierda hacia abajo derecha +
.
Luego, envíe el cuadro que contiene la cadena acortada.
Ejemplo
Stack Overflow
:
+--+
|SO|
+--+
v
Area 51
:
+---+
|A51|
+---+
v
Reglas
Puede suponer que la entrada contiene al menos un dígito o letra mayúscula.
Se aplican reglas estándar de código de golf .
^
no agrega mucho en comparación con el segundo desafío que relacioné, pero no lanzaré un martillo de engaño sobre eso, pero dejaré que el Communitz decida si lo consideran un engaño o no.99 Bottles Of Beer
, lo sería99BOB
.Respuestas:
Vim, 42 golpes
Reemplazar
<DOWN>
con ↓,<LEFT>
con ←,<ESC>
con escy<C-V>
con CTRL+ V.Aquí hay una animación de este script en ejecución (versión anterior que usa un en
V
lugar de av
):Explicación del guión:
fuente
i+↓←|␛␖ky$p
conA+↓|␛␖ky0P
para guardar un byte.I|<END>|␛
V 34 bytes
Tenga en cuenta que esto funcionó en una versión anterior, pero no funciona en la versión actual al probarlo en línea. Cambié
Ä
a loYP
que es funcionalmente equivalente.Pruébalo en línea!
Explicación:
Elimine todo excepto los dígitos y las mayúsculas.
Ahora, el búfer se ve así:
Y nuestro cursor está en la primera columna de la última línea.
Versión no competitiva: (31 bytes)
fuente
Programming Puzzles & Code Golf
produce la cadena incorrectaPP&CG
en la salida. El&
debería ser eliminadoCódigo de máquina x86 de 16 bits, 72 bytes
En hexadecimal:
Parámetros:
SI
= cadena de entrada,DI
- búfer de salida.Emite una cadena terminada en NULL con líneas delimitadas por nueva línea. Utiliza la cadena de entrada como un búfer temporal.
fuente
3c 41 cmp al,a'
no debería ser3c 41 cmp al,'a'
?Retina , 43 bytes
Pruébalo en línea!
Este es el desafío perfecto para demostrar Retina, el lenguaje de golf de Martin Ender.
Esta solución se divide en dos pasos (lo que llamamos etapas), siendo ambas etapas una etapa de reemplazo.
El primer escenario:
Esto coincide con las subcadenas que coinciden
[^A-Z\d]
, que son los caracteres que no son mayúsculas ni dígitos, y luego los sustituye por nada, lo que significa eliminarlos.La segunda etapa:
El
.+
coincide con el resultado completo y luego lo sustituye con la segunda línea.En la segunda linea:
$&
se refiere a todo el partido$.&
se refiere a la duración de todo el partido$*
significa tomar el número entero anterior, repetir el siguiente carácter tantas veces. Aquí$.&$*-
significa repetir-
por mucho tiempo que sea el partido.¶
se refiere a una nueva línea.fuente
T`dLp`dL_
pero desafortunadamente, tiene la misma longitud.C #,
183 177165 bytesmultiplicar caracteres es terrible en C #. sugerencias apreciadas
muchas gracias a aloisdg por -18 bytes
fuente
| |
con|
return$"+{x}+\n|{s}|\n+{x}+\n{new string(' ',m+1)}v";}
string.Join("",
constring.Concat(
return
Excel VBA,
375359358 bytes:Funciona, renuncio a tratar de hacerlo más corto ...
Editar: Cambió a declaración de caso de declaraciones if, -16 bytes
Edit2: Deshágase de usted y reemplazado con Len (b), -1 byte
fuente
Lua,
14599 BytesNo hay mucho que decir, manipular cadenas siempre es prolijo en lua :). Toma un argumento de línea de comandos y se envía a través de STDOUT
¡Gracias a @LeakyNun por salvarme 45 Bytes!
100 bytes propuestos por @LeakyNun
145 bytes anteriores
Sin golf
fuente
n=(...):gsub("[^A-Z%d]","")s="+"..("-"):rep(#n).."+\n"return s.."|"..n.."|\n"..s..(" "):rep(#n).."V"
es de 100 bytes%u
ganamos algunos bytes más. De todos modos, gracias :) (actualizará los no golfados más tarde)2sable ,
3634333231 bytesPresentando 2sable :). Aunque tiene mucho en común con 05AB1E, este realmente se une automáticamente a la pila en lugar de generar la parte superior de la pila. Código:
Utiliza la codificación CP-1252 .
fuente
JavaScript (ES6), 99 bytes
fuente
Haskell, 107 bytes
Esta respuesta se basa en gran medida en la respuesta de Zylviij y los comentarios de nimi . Hubiera agregado más comentarios a esa respuesta, pero, por desgracia, no tengo suficiente representante.
Trucos adicionales utilizados:
intersect
por su implementación para que la importación se pueda descartar. (Nota al margen: la implementación es casi literalmente la biblioteca, no pude encontrar una versión más corta).where
cláusula para que las funciones puedan usar eln
parámetro internamente.(#)
fue lo suficientemente corto como para estar en línea.fuente
Python 3.5,
11493112 bytes:Un programa completo Básicamente usa una expresión regular para hacer coincidir todas las apariciones de letras mayúsculas y números, luego crea el cuadro del tamaño exacto basado en la longitud de la lista de coincidencias y finalmente coloca la lista de coincidencias "dentro".
¡Pruébelo en línea! (Ideone)
fuente
Python 3,
121124 bytesCorregido error estúpido
no importa bibliotecas como otra respuesta de Python.
fuente
Java 8, 149 bytes
Pruébalo en línea.
Explicación:
fuente
Pyke, 39 bytes
Pruébalo aquí!
12 bytes de creación de minicadena, 20 bytes de formato. ¡Alegría!
fuente
Pyth,
3837 bytesPruébalo en línea.
Tenga en cuenta la nueva línea al comienzo.
fuente
Python 2, 113 bytes
fuente
47<x<58|64<x<91
:)char
tipo integral : todos los caracteres de las cadenas de Python son cadenas y no se pueden comparar directamente con los enteros. Tendría que serlo47<ord(x)<58or 64<ord(x)<91
.[x for x in n if x.isupper()^x.isdigit()]
es un byte más corto quefilter(lambda x:x.isupper()^x.isdigit(),n)
x.isupper()^x.isdigit()
->x.isupper()|x.isdigit()
Jolf, 35 bytes
Necesito una forma más corta de eliminar todos menos mayúsculas y números ...
fuente
C,
171163La función
f()
modifica su entrada e imprime el resultado.Programa de prueba
Requiere un parámetro, la cadena para usar en el favicon:
fuente
Haskell, 161
Uso
fuente
replicate
,length
yf
exclusivamente en esta combinación, por lo que puede combinarlos en una sola función:r=replicate.length.f
y llamarlo asír n '-'
. Puede guardar aún más bytes utilizando un operador infijo:(#)=replicate.length.f
yn#'-'
/n#' '
. Ademásreplicate.length
es>>
(con una cadena singleton en lugar de un carácter), por lo que es:(#)=(>>).f
yn#"-"
/n#" "
, ambos sin( )
alrededor.( )
alrededort n
yf n
."|"++
es'|':
. En resumen:o n=t n++'|':f n++"|\n"++t n++n#" "++"V"
.Bash,
9974 bytesUso: Ejecute el comando anterior, escriba el nombre del sitio, presione Entrar y luego Ctrl+ D(enviar 'fin de archivo').
fuente
CJam, 41
Pruébalo en línea
fuente
R, 108 bytes
Explicación
Yendo de adentro hacia afuera (porque a quién no le encanta asignar variables globales desde dentro de una expresión regular), suponiendo que
s
es nuestra cadena de entrada:y<-gsub("[^A-Z0-9]","",s)
mantiene mayúsculas y números, asigna el valor resultante a y.gsub(".","-",y<-...)
reemplaza todos los caracteres con guiones en lo anterior.x<-gsub("(.*)","+\\1+\n",gsub(...))
arroja una+
a cada extremo de la fila de guiones, y una nueva línea, y la almacenamos como x.El resto es bastante sencillo, se emite en el orden apropiado y usa el hecho de que el número de espacios antes del
v
será igual a la longitud de y.fuente
Brachylog , 61 bytes
Vinculado al repositorio el 7 de julio para garantizar la compatibilidad con versiones anteriores.
No competidor, 53 bytes
Pruébalo en línea!
fuente
APL,
5249 bytes(hasta 49 gracias al comentario).
fuente
{x⍪2⌽'v'↑⍨≢⍉x←⍉z⍪⍨(z←'+|+')⍪'-','-',⍨⍪⍵/⍨⍵∊⎕D,⎕A}
(Nunca paréntesis uno de los argumentos en una función de argumento invertido al jugar al golf. Siempre puede estar en el orden normal para guardar un byte.)Perl, 57 bytes
Código de 56 bytes + 1 para
-p
.Originalmente traté de hacer esto solo usando expresiones regulares, pero era mucho más grande de lo que esperaba, así que en su lugar he usado algunas repeticiones de cuerdas.
Pruébalo en línea!
fuente
MATL , 34 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 119 bytes
fuente
J , 52 bytes
Pruébalo en línea!
fuente
Ruby, 81 bytes (78 +
-p
bandera)fuente
Lisp común (Lispworks), 159 bytes bytes
sin golf:
Uso:
fuente