Dada una cadena no vacía, siga eliminando el primer y último carácter hasta llegar a uno o dos caracteres.
Por ejemplo, si la cadena era abcde
, su programa debería imprimir:
abcde
bcd
c
Sin embargo, si lo fuera abcdef
, debería detenerse en dos caracteres:
abcdef
bcde
cd
Las líneas nuevas y los espacios finales al final de cada línea son opcionales. Puedes tener tantos como quieras o ninguno.
Casos de prueba
ABCDEFGHIJKLMNOPQRSTUVWXYZ -> ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXY
CDEFGHIJKLMNOPQRSTUVWX
DEFGHIJKLMNOPQRSTUVW
EFGHIJKLMNOPQRSTUV
FGHIJKLMNOPQRSTU
GHIJKLMNOPQRST
HIJKLMNOPQRS
IJKLMNOPQR
JKLMNOPQ
KLMNOP
LMNO
MN
ABCDEFGHIJKLMNOPQRSTUVWXYZ! -> ABCDEFGHIJKLMNOPQRSTUVWXYZ!
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXY
DEFGHIJKLMNOPQRSTUVWX
EFGHIJKLMNOPQRSTUVW
FGHIJKLMNOPQRSTUV
GHIJKLMNOPQRSTU
HIJKLMNOPQRST
IJKLMNOPQRS
JKLMNOPQR
KLMNOPQ
LMNOP
MNO
N
A -> A
AB -> AB
Recuerde que esto es code-golf , por lo que gana el código con el menor número de bytes.
Respuestas:
V , 10 bytes
Pruébalo en línea!
Explicación:
fuente
Python, 45 bytes
Emite recursivamente la cadena, más una nueva línea, más los espacios iniciales para la siguiente línea, más el resultado recursivo para la cadena acortada con un espacio adicional en el prefijo.
Si se permitiera una nueva línea principal, podríamos guardar un byte:
Compare con un programa (49 bytes en Python 2):
fuente
ES6 (Javascript),
47,48, 43 bytesEDITAR: operador ternario reemplazado con &&, cadena de relleno prefijada con la nueva línea. Gracias @Neil por un excelente consejo!
EDITAR: incluyó el nombre de la función para la invocación recursiva, eliminó un byte usando una nueva línea literal
Golfed
Prueba
fuente
p
igual a una nueva línea y un espacio; tal vez eso también te pueda ayudar.s&&
lugar des?...:''
.Python 2, 50 bytes
Función recursiva simple que sigue acortando la cadena hasta que desaparece.
Llamar como f ('cadena')
Salida
fuente
Perl, 31 bytes
30 bytes de código +
-p
bandera.Para ejecutarlo:
Explicaciones : El
\S
y.$
corresponde al primer y último carácter,(.+)
el medio y( *)
los espacios finales que se agregan cada vez que eliminamos un carácter desde el principio. Por lo tanto, la expresión regular elimina un carácter desde el principio, uno desde el final y agrega un espacio inicial cada vez.fuente
Brainfuck , 67 bytes
Esto debería funcionar en todos los sabores de brainfuck.
Pruébalo en línea!
Código sin golf:
Todavía debería haber algunos bytes para cortar aquí; Hace poco comencé a usar brainfuck, por lo que el movimiento de mi puntero probablemente sea muy ineficiente.
fuente
MATL , 9 bytes
Esto produce espacios finales y líneas nuevas.
Pruébalo en línea!
Explicación
fuente
Lote, 92 bytes
Toma entrada en STDIN.
fuente
C, 73 bytes
Sin golf:
Uso:
fuente
05AB1E , 8 bytes
Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea!
fuente
Pyke, 10 bytes
Pruébalo aquí!
fuente
Haskell,
4743 bytesPruébalo en Ideone . La salida es una lista de cadenas que se permitió en los comentarios del desafío. Para imprimir, ejecute con en
(putStr.unlines.f)
lugar de solof
.Editar: guardado 4 bytes después de notar que se permite el espacio en blanco al final.
fuente
Perl 6 , 42 bytes
Expandido:
fuente
GNU sed 24 Bytes
Incluye +2 para
-rn
Imprime, reemplaza el primer carácter no espacial con un espacio y elimina el último carácter hasta que nada cambie.
fuente
Retina , 17 bytes
Pruébalo en línea!
fuente
C ++ 14, 117 bytes
Asume que la entrada
s
es astd::string
y devuelve el texto animado.Sin golf:
Uso:
fuente
Vim - 14 pulsaciones de teclas
Explicación:
Vim mata automáticamente la macro una vez que nos quedamos sin personajes
fuente
¡Chasquido! - 16 bloques
La salida es autocentrante. La "espera" es para los humanos.
fuente
PHP, 91 bytes
Uso: guardar en un archivo y llamar desde el navegador:
fuente
Mathematica, 71 bytes
fuente