Cree un programa que convierta la cadena de entrada en un palíndromo comenzando con la cadena de entrada. El programa en sí debe ser un palíndromo.
Por ejemplo, input:, neverod
print neveroddoreven
. También debe manejar entradas de varias palabras y varias líneas.
neverod
->neverodadoreven
(con ela
intermedio)Respuestas:
Dyalog APL,
64Pruébalo aquí
Otras soluciones:
Explicación
Ellos son solo:
Monádico
,
y⊢
no hace nada con cuerdas. Dyadic,
es concatenación. Dyadic⊢
devuelve su operando correcto. Y⌽
obviamente es reversión.fuente
piet 19x2 = 38
Acepta entradas hasta que encuentre 0x00. No termina, pero la salida será correcta.
fuente
APL, 9
Explicación:
fuente
CJam, 13 bytes
Pruébalo en línea aquí
o..
GolfScript, 9 bytes
Pruébalo aquí
fuente
#
comentario ordinario funcionaría igual de bien allí.}
se sabe que es un súper comentario desde hace mucho tiempo :)C ++, 162 bytes
C, 117 bytes
fuente
Haskell, 102 + 22 = 124 bytes
Esto debe ejecutarse con el
Control.Applicative
módulo en el alcance, que se puede configurar a través del archivo ghci init.ghci
::m Control.Applicative
(-> +22 bytes).Sin truco de comentarios, solo 7 funciones donde 4 de ellas nunca se llaman.
Si se permiten funciones (en lugar de programas):
Haskell, 55 + 22 = 77 bytes
Uso
f "qwer"
->"qwerrewq"
Editar: la versión anterior era simplemente incorrecta.
fuente
Pyth, 11 bytes
En Pyth, todo lo que precede a un espacio no se imprime. Entonces simplemente agregamos el negativo de la cadena a sí mismo, ponemos un espacio, comenzamos una cadena y reflejamos el lado izquierdo de la cita "
Pruébalo en línea aquí
fuente
Rubí, 44
Toma una cadena multilínea como entrada de stdin, genera una representación Ruby de esa cadena concatenada en su reverso. Podría recortar un carácter reemplazándolo
||
con#
para comentar el código muerto en la segunda línea.fuente
s=gets p
! =p steg=s
Jolf, 9 bytes
Lenguaje más nuevo, no competitivo
Intenta aquí
Explicación: Acabo de comenzar Jolf y no creo que esté explicando esto correctamente.
fuente
η
en la solución, muy bien hecho. Puede guardar dos bytes mediante la eliminación de las mu, como:a+i_i+a
. (Jolf también tiene una entrada implícita para completar el resto de los argumentos, pero esto no es un problema ya que solo se da una entrada a la vez). Todavía mantendría su solución original en la respuesta.PowerShell, 67
Pruébalo en línea
Como lo sugiere @mazzy, el código se puede acortar en 12 bytes cuando se usa un rango estático. Sin embargo, esto limita la longitud de entrada a 9 KB. Teóricamente, 9MBytes serían posibles, pero ralentizaría el código significativamente.
fuente
param($s)$s+-join$s[$s.Length..0]#]0..htgneL.s$[s$nioj-+s$)s$(marap
$args|%{$_+-join$_[9Kb..0]}#}]0..bK9[_$nioj-+_${%|sgra$
(55 bytes)Fuzzy Octo Guacamole, 17 bytes
FOG es más nuevo que este desafío, por lo que no es competitivo.
Solución alternativa en 19 bytes:
Ambos toman entrada, duplican e invierten, y se unen a la pila.
Explicación:
fuente
tinyBF , 40
Mi primer pensamiento fue Brainfuck, pero es imposible hacer coincidir los frenos ... afortunadamente tinyBF tiene un control de flujo más simple.
No hay comentarios, toma una cadena terminada en nulo como entrada y devuelve el resultado en una cadena terminada en nulo. Puede probarlo aquí , solo tenga en cuenta que no se detiene (aunque Firefox al menos le pide que detenga el script que no responde).
Comentado:
Tenga en cuenta que si lo codifica en instrucciones de 2 bits, reduce el tamaño a 10 bytes (no sería un palíndromo).
fuente
Python 3, 59 bytes
Hice todo lo posible para encontrar una solución que solo usara una línea, pero no tuve suerte.
Python 3, 79 bytes
Mi intento original en el que cada línea es un palíndromo. No creo que sea necesario para este desafío, pero lo incluí por si acaso.
fuente
lambda
es tan larga):print((lambda a:a+a[::-1])(input()))#)))(tupni()]1-::[a+a:a adbmal((tnirp
Vitsy, 9 bytes
Pruébalo en línea!
fuente
Befunge , 37 bytes
Pruébalo en línea!
La línea superior empuja e imprime cada carácter de entrada. La segunda línea (antes de
@
) imprime la pila en reversa, pero ingresamos en el contional_
para consumir el -1 generado al terminar de leer la entrada. La otra mitad del código (incluidas las nuevas líneas feas) hace que la fuente sea un palíndromo, pero nunca se ejecuta.fuente
C # (
3332 + 1) * 2 =6866 bytesguardado 2 bytes para el uso de .Aggregate ()
Oh, el buen viejo lambda, puedes atraparlo con
y luego llamarlo con
fuente
Perl, 45 bytes
Bastante sencillo,
print
es la entrada ($_=<>
) seguida de lareverse
de ella.reverse
devuelve$_
porque lo estamos usando en contexto escalar con el prefijo~~
. Luego emparejamos (m//
usando;
como delimitador), en contexto vacío, contra el reverso del guión.Si podemos garantizar que no tendremos que crear un palíndromo
esrever,><=_$tnirp
, podemos acortar el código a 43 bytes :Uso
Perl, 26 bytes
Incluye código de 25 bytes + 1 para
-p
.No creo que esto sea válido ya que requiere la
-p
bandera que no creo que pueda combinarse fácilmente en el contenido del script para hacer un verdadero palíndromo. Casi las mismas llamadas que antes, excepto que se basa en el hecho de que-p
también agrega un;
detrás de escena (en Perls más nuevos ...) para cerrar elm//
.Uso
fuente
Pyth, 15
Observe el espacio al principio y al final.
Tarea bastante molesta en Pyth.
z_z
imprime el palíndromo deseado, pero imprimez
(la cadena de entrada) y_z
el inverso en dos líneas diferentes.+
combina las dos palabras, pero+
al final requiere dos nuevas declaraciones al final (y al principio). Yo elijok
yk
, que son solo cadenas vacías. Luego, mucho espacio en blanco, que suprime la impresión (y la impresión de espacios vacíos, que generan, por supuesto, saltos de línea).Dado que el espacio en blanco suprime todas las salidas, excepto la
+z_z
, puede reemplazar elk
sy literal con arity 0. Eg1 2+ z_z +2 1
oT Z+ z_z +Z T
.Pruébalo en línea .
fuente
Javascript, 137 bytes
No estoy usando el "truco de comentarios" pero estoy usando el truco de comillas escapado jajaja.
fuente
";
. Agregar un;
como el último carácter dentro de la cadena debería solucionar esto.JavaScript, 58 bytes
fuente
PHP, 28 + 1 + 28 = 57 bytes
toma datos del argumento de la línea de comando. Presupuesto para palabras múltiples, escape de líneas nuevas para líneas múltiples.
fuente
Python 2, 51 bytes
¡Me sorprende que nadie haya pensado en esto! Necesita entrada citada (
'
o"
). Si se permitieran las funciones, podría haber hecho esto por 37 bytes:fuente
C ++ 14,
152116bytesComo lambda sin nombre, se supone
s
que esstring
Vieja solución:
Uso:
fuente
05AB1E , 5 bytes
Pruébalo en línea.
Explicación:
O alternativamente:
Pruébalo en línea.
Donde
R
es inverso, y«
toma la entrada implícitamente de nuevo para concat.NOTA: Si se nos permite emitir
neverodoreven
para la entradaneverod
, que sigue siendo un palíndromo, se puede hacer en 1 byte con el palindromizado incorporado:Pruébalo en línea.
fuente
Asamblea x86-64 (convención de llamadas x64 de Microsoft), 89 bytes:
Desmontado:
Tenga en cuenta que el código después de la
ret
instrucción en2C
es inalcanzable, por lo que no importa que no tenga sentidofuente
Japt , 4 bytes
Pruébalo en línea!
Cómo funciona
Alternativa 4 bytes
Pruébalo en línea!
Cómo funciona
fuente
Revés ,
3327 bytesPruébalo en línea!
A diferencia de muchas de las soluciones aquí, esta en realidad funciona utilizar el código palindromised!
Explicación:
En total, las instrucciones no ejecutadas son:
fuente