Perl, 45 байт
;print$_=<>,~~reverse;m;esrever~~,><=_$tnirp;
Довольно просто, print
s input ( $_=<>
), а затем reverse
из него. reverse
возвращается, $_
потому что мы используем его в скалярном контексте с префиксом ~~
. Затем мы сопоставляем ( m//
используя в ;
качестве разделителя), в пустом контексте, обратную сторону скрипта.
Если мы можем гарантировать, что нам не нужно создавать палиндром, esrever,><=_$tnirp
мы можем сократить код до 43 байт :
g.print$_=<>,reverse.m.esrever,><=_$tnirp.g
использование
echo -n 'neverod' | perl -e 'g.print$_=<>,reverse.m.esrever,><=_$tnirp.g'
neveroddoreven
Perl, 26 байт
Включает 25-байтовый код + 1 для -p
.
$_.=reverse;m;esrever=._$
Я не думаю, что это верно, поскольку для этого требуется -p
флаг, который, я думаю, не может быть легко объединен с содержимым скрипта для создания настоящего палиндрома. Практически те же вызовы, что и выше, за исключением того, что он -p
также добавляет ;
закулисные (на более новых Perls ...) для закрытия m//
.
использование
echo -n 'neverod' | perl -pe ';$_.=reverse;m;esrever=._$;'
neveroddoreven