Crie um programa que converta a sequência de entrada em um palíndromo começando com a sequência de entrada. O programa em si deve ser um palíndromo.
Por exemplo, entrada:, neverod
imprima neveroddoreven
. Você deve manipular entradas com várias palavras e várias linhas também.
neverod
->neverodadoreven
(com oa
meio)Respostas:
Dyalog APL,
64Experimente aqui.
Outras soluções:
Explicação
Eles são apenas:
Monádico
,
e⊢
não faz nada nas cordas. Diádico,
é concatenação. Diádico⊢
retorna seu operando direito. E⌽
é obviamente reversão.fonte
piet 19x2 = 38
Aceita entrada até encontrar 0x00. Não termina, mas a saída estará correta.
fonte
APL, 9
Explicação:
fonte
CJam, 13 bytes
Experimente online aqui
ou..
GolfScript, 9 bytes
Experimente aqui
fonte
#
comentário comum funcionaria tão bem lá.}
tem sido conhecido por ser um comentário Super desde idades :)C ++, 162 bytes
C, 117 bytes
fonte
Haskell, 102 + 22 = 124 bytes
Isso deve ser executado com o
Control.Applicative
módulo no escopo, que pode ser definido através do arquivo ghci init.ghci
::m Control.Applicative
(-> +22 bytes).Nenhum truque de comentário, apenas 7 funções em que 4 nunca são chamadas.
Se funções (em vez de programas) forem permitidas:
Haskell, 55 + 22 = 77 bytes
Uso
f "qwer"
->"qwerrewq"
Edit: a versão anterior estava errada.
fonte
Pitão, 11 bytes
No Pyth, qualquer coisa anterior a um espaço não é impressa. Então, simplesmente adicionamos o negativo da string a ela mesma, colocamos um espaço, iniciamos uma string e espelhamos o lado esquerdo da citação "
Experimente online aqui
fonte
Ruby, 44
Pega uma sequência multilinha como entrada de stdin, gera uma representação Ruby dessa sequência concatenada ao contrário. Pode aparar um caractere substituindo
||
por#
para comentar o código morto na segunda linha.fonte
s=gets p
! =p steg=s
Jolf, 9 bytes
Idioma mais recente, não concorrente
Experimente aqui
Explicação: Acabei de iniciar o Jolf e acho que não estou explicando isso corretamente.
fonte
η
na solução, muito bem feito. Você pode salvar dois bytes, eliminando as mu, como:a+i_i+a
. (Jolf também tem uma entrada implícita para preencher o restante dos argumentos, mas isso não é um problema, pois apenas uma entrada é dada por vez.) Eu ainda manteria sua solução original na resposta.PowerShell, 67
Experimente online
Conforme sugerido por @mazzy, o código pode ser reduzido em 12 bytes ao usar um intervalo estático. Isso, no entanto, limita o comprimento da entrada para 9KBytes. Teoricamente, seriam necessários 9 MBytes, mas isso diminuiria significativamente o código.
fonte
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
O FOG é mais novo que esse desafio, portanto não é competitivo.
Solução Alt em 19 bytes:
Ambos recebem entrada, duplicam e revertem e se juntam à pilha.
Explicação:
fonte
tinyBF , 40
Meu primeiro pensamento foi Brainfuck, mas é impossível combinar os aparelhos ... felizmente tinyBF tem um controle de fluxo mais simples.
Sem comentários, ele usa uma sequência terminada nula como entrada e retorna o resultado em uma sequência terminada nula. Você pode testá-lo aqui , esteja avisado de que ele não será interrompido (embora o Firefox ao menos peça para interromper o script que não responde).
Comentado:
Observe que se você o codificar em instruções de 2 bits, o tamanho será reduzido para 10 bytes (não seria um palíndromo).
fonte
Python 3, 59 bytes
Eu tentei o meu melhor para encontrar uma solução que usasse apenas uma linha, mas não tive sorte.
Python 3, 79 bytes
Minha tentativa original em que cada linha é um palíndromo. Não acho que seja necessário para esse desafio, mas o incluí apenas por precaução.
fonte
lambda
é tão longa):print((lambda a:a+a[::-1])(input()))#)))(tupni()]1-::[a+a:a adbmal((tnirp
Vitsy, 9 bytes
Experimente online!
fonte
Befunge , 37 bytes
Experimente online!
A linha superior empurra e imprime todos os caracteres da entrada. A segunda linha (antes da
@
) imprime a pilha no sentido inverso, mas entramos no contional_
para consumir o -1 gerado ao concluir a leitura da entrada. A outra metade do código (incluindo as novas linhas feias) torna a fonte um palíndromo, mas a nevasca é executada.fonte
C # (
3332 + 1) * 2 =6866 bytessalvou 2 bytes no uso de .Aggregate ()
Oh, o bom e velho lambda, você pode pegá-lo com
e depois chame-o com
fonte
Perl, 45 bytes
Bem simples,
print
é a entrada ($_=<>
) seguida pelareverse
.reverse
retorna$_
porque o estamos usando no contexto escalar prefixando com~~
. Em seguida, combinamos (m//
usando;
como delimitador), no contexto nulo, contra o reverso do script.Se pudermos garantir, não precisaremos criar um palíndromo,
esrever,><=_$tnirp
pois podemos reduzir o código para 43 bytes :Uso
Perl, 26 bytes
Inclui código de 25 bytes + 1 para
-p
.Eu não acho que isso seja válido, pois requer a
-p
bandeira que eu acho que não pode ser facilmente combinada com o conteúdo do script para criar um verdadeiro palíndromo. Praticamente as mesmas chamadas acima, exceto que se baseia no fato de que-p
também adiciona um;
segundo plano (nos Perls mais recentes ...) para fechar om//
.Uso
fonte
Pitão, 15
Observe o espaço no começo e no final.
Tarefa bastante chata em Pyth.
z_z
imprime o palíndromo desejado, mas imprimez
(a sequência de entrada) e_z
o inverso em duas linhas diferentes.+
combina as duas palavras, mas+
no final requer duas novas declarações no final (e no início). Eu escolhok
ek
, que são apenas cadeias vazias. Em seguida, muito espaço em branco, que suprime a impressão (e a impressão de espaços vazios, que geram, naturalmente, quebras de linha).Como o espaço em branco suprime todas as saídas, exceto a
+z_z
, você pode substituirk
s e literal pela arity 0. Por exemplo,1 2+ z_z +2 1
ouT Z+ z_z +Z T
.Experimente online .
fonte
Javascript, 137 bytes
Eu não estou usando o "truque de comentário", mas estou usando o truque de aspas escapadas lol.
fonte
";
. Adicionar a;
como o último caractere dentro da string deve corrigir isso.JavaScript, 58 bytes
fonte
PHP, 28+1+28=57 bytes
takes input from command line argument. quote for multi-word, escape newlines for multi-line.
fonte
Python 2, 51 bytes
I'm surprised no-one thought of this! Needs quoted input (
'
or"
). If functions were allowed, I could have done this for 37 bytes instead:fonte
C++14,
152116 bytesAs unnamed lambda, assumes
s
to bestring
Old solution:
Usage:
fonte
05AB1E, 5 bytes
Try it online.
Explanation:
Or alternatively:
Try it online.
Where
R
is reverse, and the«
takes the input implicitly again to concat with.OBSERVAÇÃO: Se for permitido enviar
neverodoreven
para a entradaneverod
, que ainda é um palíndromo, isso pode ser feito em 1 byte, com o palindromize incorporado:Experimente online.
fonte
Conjunto x86-64 (convenção de chamada Microsoft x64), 89 bytes:
Desmontado:
Observe que o código após a
ret
instrução at2C
é inacessível, portanto não importa que seja um absurdofonte
Japonês , 4 bytes
Experimente online!
Como funciona
Alternativa 4 bytes
Experimente online!
Como funciona
fonte
Backhand ,
3327 bytesExperimente online!
Unlike a lot of the solutions here, this one actually does use the palindromised code!
Explanation:
Altogether, the unexecuted instructions are:
fonte