Invertisco il codice sorgente, inverti l'input!


17

Ancora un'altra palese fregatura di una fregatura di una fregatura . Votare quelli!

Il tuo compito, se desideri accettarlo, è scrivere un programma / funzione che emetta / restituisca il suo input / argomento stringa. La parte difficile è che se invertisco il codice sorgente, anche l'output deve essere invertito.

Per semplicità, puoi presumere che l'input sia sempre una stringa a riga singola contenente solo lettere ASCII (az), cifre (0-9) e spazi.

Dovrebbe supportare un input di almeno 8 caratteri (non sono necessari più di 8 caratteri).

Il comportamento per input vuoto non è definito.

Esempi

Supponiamo che il tuo codice sorgente sia ABCe il suo input sia xyz. Se CBAinvece scrivo ed eseguo, l'output deve essere zyx.

Supponiamo che il tuo codice sorgente sia ABCe il suo input sia 96. Se CBAinvece scrivo ed eseguo, l'output deve essere 69.

Un singolo spazio bianco iniziale o finale è accettabile purché sia ​​coerente sia in uscita normale che inversa.

Risposte:


16

JavaScript, 32 byte

s=>s//``nioj.)(esrever.]s...[>=s

invertito:

s=>[...s].reverse().join``//s>=s

Ben fatto, non sapevo che JS non ha un reverse incorporato per le stringhe. A proposito, i link TIO di solito rendono le risposte più simpatiche: provalo online! Invertito
Notte2

3
Non c'è inversione di stringa. [...s]converte in array, che viene invertito e poi ricollegato come una stringa.
James,

Se anche tu ti sei imbattuto .join``- dai un'occhiata ai Modelli
Taggati

13

APL (Dyalog Unicode) , 3 2 byte SBCS

-1 byte grazie a dzaima

⌽⊂

Provalo online!

 racchiudere l'argomento per trattarlo come un singleton: [1,2,3][[1,2,3]]

 reverse (non ha alcun effetto sui singoli): [[1,2,3]][[1,2,3]]

Una matrice chiusa viene stampata con uno spazio iniziale e finale.

! enilno ti yrT

 reverse (non ha alcun effetto sui singoli): [1,2,3][3,2,1]

 allegare: [1,2,3][[1,2,3]]

Una matrice chiusa viene stampata con uno spazio iniziale e finale.


Bello. I digrafi rendono questo più difficile in J ... non hanno ancora escogitato nulla
Giona


8

Keg , 3 2 byte

#?

Nessun TIO ancora in quanto utilizza l'interprete più recente

spiegato

#? #Implicit cat
?# Reversed input

Eh. Giusto. Keg può resistere anche a quelle risposte a 2 byte (e usando ASCII puro e semplice)!

Vecchio programma

^#?

Provalo online! Oppure ! Enilno ti yrT

Perché due possono giocare al gioco a 3 byte. Ecco perchè. (ho già detto che sono 3 byte di utf8 ASCII ?)

^#? #Reverse an empty stack, taking implicit input

?#^ #take input



4

Stack Cats -m , 4 byte

|>I|

Provalo online!

Provalo al contrario!

Funziona con tutti gli input che non contengono byte null.

Spiegazione

Wow, ho raggiunto il punto in cui li scrivo a mano ...

Il programma completo è |>I|I<|.

|   Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
>   Move one stack over to the right (which only contains zeros).
I   Does nothing on zero.
|   Does nothing on zero.
I   Does nothing on zero.
<   Move back to the initial stack.
|   Reverse the input once more.

Come nella soluzione alla sfida precedente, dal momento che il comando centrale | non fa nulla, così come l'intero programma.

Il programma inverso è quindi |I>|<I|.

|   Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I   Move the -1 one stack to the left and turn it into a +1.
>   Move back to the initial stack.
|   Reverse it again, but this time without the EOF marker.
<   Move back to the left.
I   Move the +1 back onto the initial stack and turn it into a -1 again.
|   Reverse the entire stack. We now have the -1 as an EOF marker again at the bottom
    and the rest of the stack has been reversed three times, i.e. one net reversal.

È interessante notare che se usiamo questo programma di inversione senza -mche questa volta continuiamo a ottenere una soluzione funzionante, quindi gli unici byte aggiuntivi sostenuti dall'omissione -msono quelli che otteniamo dal mirroring del codice.


Stack Cats , 7 byte

|I<|>I|

Provalo online!

Provalo al contrario!

Spiegazione

La versione inversa di questo programma è |I>|<I|la stessa di cui sopra, quindi possiamo ignorarla. Ma la versione non invertita differisce. Dato che <>ora puntano dall'altra parte, il comando centrale finisce per non fare nulla, quindi il programma diventa un gatto:

|   Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I   Move the -1 one stack to the left and turn it into a +1.
<   Move another stack to the left, which contains only zeros.
|   Does nothing on zero.

E quindi, >I|annulla esattamente la prima metà del programma.


4

Carbone , 2 byte

S←

Provalo online! Spiegazione: stampa implicitamente l'input esplicito e sposta il cursore a sinistra (nessun effetto sull'output finale). invertito:

←S

Provalo online! cambia la direzione della stampa implicita dell'input esplicito invertendo così l'output.



3

Turing Machine Language , 14324 14321 byte

0 ( ( l 6 ;
0 * * l 2 ;
1 _ _ l 2 ;
2 _ ( r 3 ;
3 _ _ r 4 ;
4 _ _ l 3) ;
4 * * r 2 ;
3) _ ) l 5 ;
3 * * r 3 ;
5 ( ( * 0 ;
5 * * l 5 ;
6 _ _ l 7 ;
7 _ ] r 8 ;
8 ) ) l 9 ;
8 * * r 8 ;
9 0 @ l c0 ;
9 1 @ l c1 ;
9 2 @ l c2 ;
9 3 @ l c3 ;
9 4 @ l c4 ;
9 5 @ l c5 ;
9 6 @ l c6 ;
9 7 @ l c7 ;
9 8 @ l c8 ;
9 9 @ l c9 ;
9 a @ l a ;
9 A @ l A ;
9 b @ l b ;
9 B @ l B ;
9 c @ l c ;
9 C @ l C ;
9 d @ l d ;
9 D @ l D ;
9 e @ l e ;
9 E @ l E ;
9 f @ l f ;
9 F @ l F ;
9 g @ l g ;
9 G @ l G ;
9 h @ l h ;
9 H @ l H ;
9 i @ l i ;
9 I @ l I ;
9 j @ l j ;
9 J @ l J ;
9 k @ l k ;
9 K @ l K ;
9 l @ l l ;
9 L @ l L ;
9 m @ l m ;
9 M @ l M ;
9 n @ l n ;
9 N @ l N ;
9 o @ l o ;
9 O @ l O ;
9 p @ l p ;
9 P @ l P ;
9 q @ l q ;
9 Q @ l Q ;
9 r @ l r ;
9 R @ l R ;
9 s @ l s ;
9 S @ l S ;
9 t @ l t ;
9 T @ l T ;
9 u @ l u ;
9 U @ l U ;
9 v @ l v ;
9 V @ l V ;
9 w @ l w ;
9 W @ l W ;
9 x @ l x ;
9 X @ l X ;
9 y @ l y ;
9 Y @ l Y ;
9 z @ l z ;
9 Z @ l Z ;
c0 ] ] l c0a ;
c0 * * l c0 ;
c0a _ 0 r @0 ;
c0a * * l c0a ;
@0 @ 0 l nC ;
@0 * * r @0 ;
c1 ] ] l c1a ;
c1 * * l c1 ;
c1a _ 1 r @1 ;
c1a * * l c1a ;
@1 @ 1 l nC ;
@1 * * r @1 ;
c2 ] ] l c2a ;
c2 * * l c2 ;
c2a _ 2 r @2 ;
c2a * * l c2a ;
@2 @ 2 l nC ;
@2 * * r @2 ;
c3 ] ] l c3a ;
c3 * * l c3 ;
c3a _ 3 r @3 ;
c3a * * l c3a ;
@3 @ 3 l nC ;
@3 * * r @3 ;
c4 ] ] l c4a ;
c4 * * l c4 ;
c4a _ 4 r @4 ;
c4a * * l c4a ;
@4 @ 4 l nC ;
@4 * * r @4 ;
c5 ] ] l c5a ;
c5 * * l c5 ;
c5a _ 5 r @5 ;
c5a * * l c5a ;
@5 @ 5 l nC ;
@5 * * r @5 ;
c6 ] ] l c6a ;
c6 * * l c6 ;
c6a _ 6 r @6 ;
c6a * * l c6a ;
@6 @ 6 l nC ;
@6 * * r @6 ;
c7 ] ] l c7a ;
c7 * * l c7 ;
c7a _ 7 r @7 ;
c7a * * l c7a ;
@7 @ 7 l nC ;
@7 * * r @7 ;
c8 ] ] l c8a ;
c8 * * l c8 ;
c8a _ 8 r @8 ;
c8a * * l c8a ;
@8 @ 8 l nC ;
@8 * * r @8 ;
c9 ] ] l c9a ;
c9 * * l c9 ;
c9a _ 9 r @9 ;
c9a * * l c9a ;
@9 @ 9 l nC ;
@9 * * r @9 ;
a ] ] l aa ;
a * * l a ;
aa _ a r @a ;
aa * * l aa ;
@a @ a l nC ;
@a * * r @a ;
A ] ] l Aa ;
A * * l A ;
Aa _ A r @A ;
Aa * * l Aa ;
@A @ A l nC ;
@A * * r @A ;
b ] ] l ba ;
b * * l b ;
ba _ b r @b ;
ba * * l ba ;
@b @ b l nC ;
@b * * r @b ;
B ] ] l Ba ;
B * * l B ;
Ba _ B r @B ;
Ba * * l Ba ;
@B @ B l nC ;
@B * * r @B ;
c ] ] l ca ;
c * * l c ;
ca _ c r @c ;
ca * * l ca ;
@c @ c l nC ;
@c * * r @c ;
C ] ] l Ca ;
C * * l C ;
Ca _ C r @C ;
Ca * * l Ca ;
@C @ C l nC ;
@C * * r @C ;
d ] ] l da ;
d * * l d ;
da _ d r @d ;
da * * l da ;
@d @ d l nC ;
@d * * r @d ;
D ] ] l Da ;
D * * l D ;
Da _ D r @D ;
Da * * l Da ;
@D @ D l nC ;
@D * * r @D ;
e ] ] l ea ;
e * * l e ;
ea _ e r @e ;
ea * * l ea ;
@e @ e l nC ;
@e * * r @e ;
E ] ] l Ea ;
E * * l E ;
Ea _ E r @E ;
Ea * * l Ea ;
@E @ E l nC ;
@E * * r @E ;
f ] ] l fa ;
f * * l f ;
fa _ f r @f ;
fa * * l fa ;
@f @ f l nC ;
@f * * r @f ;
F ] ] l Fa ;
F * * l F ;
Fa _ F r @F ;
Fa * * l Fa ;
@F @ F l nC ;
@F * * r @F ;
g ] ] l ga ;
g * * l g ;
ga _ g r @g ;
ga * * l ga ;
@g @ g l nC ;
@g * * r @g ;
G ] ] l Ga ;
G * * l G ;
Ga _ G r @G ;
Ga * * l Ga ;
@G @ G l nC ;
@G * * r @G ;
h ] ] l ha ;
h * * l h ;
ha _ h r @h ;
ha * * l ha ;
@h @ h l nC ;
@h * * r @h ;
H ] ] l Ha ;
H * * l H ;
Ha _ H r @H ;
Ha * * l Ha ;
@H @ H l nC ;
@H * * r @H ;
i ] ] l ia ;
i * * l i ;
ia _ i r @i ;
ia * * l ia ;
@i @ i l nC ;
@i * * r @i ;
I ] ] l Ia ;
I * * l I ;
Ia _ I r @I ;
Ia * * l Ia ;
@I @ I l nC ;
@I * * r @I ;
j ] ] l ja ;
j * * l j ;
ja _ j r @j ;
ja * * l ja ;
@j @ j l nC ;
@j * * r @j ;
J ] ] l Ja ;
J * * l J ;
Ja _ J r @J ;
Ja * * l Ja ;
@J @ J l nC ;
@J * * r @J ;
k ] ] l ka ;
k * * l k ;
ka _ k r @k ;
ka * * l ka ;
@k @ k l nC ;
@k * * r @k ;
K ] ] l Ka ;
K * * l K ;
Ka _ K r @K ;
Ka * * l Ka ;
@K @ K l nC ;
@K * * r @K ;
l ] ] l la ;
l * * l l ;
la _ l r @l ;
la * * l la ;
@l @ l l nC ;
@l * * r @l ;
L ] ] l La ;
L * * l L ;
La _ L r @L ;
La * * l La ;
@L @ L l nC ;
@L * * r @L ;
m ] ] l ma ;
m * * l m ;
ma _ m r @m ;
ma * * l ma ;
@m @ m l nC ;
@m * * r @m ;
M ] ] l Ma ;
M * * l M ;
Ma _ M r @M ;
Ma * * l Ma ;
@M @ M l nC ;
@M * * r @M ;
n ] ] l na ;
n * * l n ;
na _ n r @n ;
na * * l na ;
@n @ n l nC ;
@n * * r @n ;
N ] ] l Na ;
N * * l N ;
Na _ N r @N ;
Na * * l Na ;
@N @ N l nC ;
@N * * r @N ;
o ] ] l oa ;
o * * l o ;
oa _ o r @o ;
oa * * l oa ;
@o @ o l nC ;
@o * * r @o ;
O ] ] l Oa ;
O * * l O ;
Oa _ O r @O ;
Oa * * l Oa ;
@O @ O l nC ;
@O * * r @O ;
p ] ] l pa ;
p * * l p ;
pa _ p r @p ;
pa * * l pa ;
@p @ p l nC ;
@p * * r @p ;
P ] ] l Pa ;
P * * l P ;
Pa _ P r @P ;
Pa * * l Pa ;
@P @ P l nC ;
@P * * r @P ;
q ] ] l qa ;
q * * l q ;
qa _ q r @q ;
qa * * l qa ;
@q @ q l nC ;
@q * * r @q ;
Q ] ] l Qa ;
Q * * l Q ;
Qa _ Q r @Q ;
Qa * * l Qa ;
@Q @ Q l nC ;
@Q * * r @Q ;
r ] ] l ra ;
r * * l r ;
ra _ r r @r ;
ra * * l ra ;
@r @ r l nC ;
@r * * r @r ;
R ] ] l Ra ;
R * * l R ;
Ra _ R r @R ;
Ra * * l Ra ;
@R @ R l nC ;
@R * * r @R ;
s ] ] l sa ;
s * * l s ;
sa _ s r @s ;
sa * * l sa ;
@s @ s l nC ;
@s * * r @s ;
S ] ] l Sa ;
S * * l S ;
Sa _ S r @S ;
Sa * * l Sa ;
@S @ S l nC ;
@S * * r @S ;
t ] ] l ta ;
t * * l t ;
ta _ t r @t ;
ta * * l ta ;
@t @ t l nC ;
@t * * r @t ;
T ] ] l Ta ;
T * * l T ;
Ta _ T r @T ;
Ta * * l Ta ;
@T @ T l nC ;
@T * * r @T ;
u ] ] l ua ;
u * * l u ;
ua _ u r @u ;
ua * * l ua ;
@u @ u l nC ;
@u * * r @u ;
U ] ] l Ua ;
U * * l U ;
Ua _ U r @U ;
Ua * * l Ua ;
@U @ U l nC ;
@U * * r @U ;
v ] ] l va ;
v * * l v ;
va _ v r @v ;
va * * l va ;
@v @ v l nC ;
@v * * r @v ;
V ] ] l Va ;
V * * l V ;
Va _ V r @V ;
Va * * l Va ;
@V @ V l nC ;
@V * * r @V ;
w ] ] l wa ;
w * * l w ;
wa _ w r @w ;
wa * * l wa ;
@w @ w l nC ;
@w * * r @w ;
W ] ] l Wa ;
W * * l W ;
Wa _ W r @W ;
Wa * * l Wa ;
@W @ W l nC ;
@W * * r @W ;
x ] ] l xa ;
x * * l x ;
xa _ x r @x ;
xa * * l xa ;
@x @ x l nC ;
@x * * r @x ;
X ] ] l Xa ;
X * * l X ;
Xa _ X r @X ;
Xa * * l Xa ;
@X @ X l nC ;
@X * * r @X ;
y ] ] l ya ;
y * * l y ;
ya _ y r @y ;
ya * * l ya ;
@y @ y l nC ;
@y * * r @y ;
Y ] ] l Ya ;
Y * * l Y ;
Ya _ Y r @Y ;
Ya * * l Ya ;
@Y @ Y l nC ;
@Y * * r @Y ;
z ] ] l za ;
z * * l z ;
za _ z r @z ;
za * * l za ;
@z @ z l nC ;
@z * * r @z ;
Z ] ] l Za ;
Z * * l Z ;
Za _ Z r @Z ;
Za * * l Za ;
@Z @ Z l nC ;
@Z * * r @Z ;
Sp ] ] l Sp1 ;
Sp * * l Sp ;
Sp1 _ ~ r @Sp ;
Sp1 * * l Sp1 ;
@Sp @ _ l nC ;
@Sp * * r @Sp ;
nC _ @ l Sp ;
nC 0 0 * 9 ;
nC 1 1 * 9 ;
nC 2 2 * 9 ;
nC 3 3 * 9 ;
nC 4 4 * 9 ;
nC 5 5 * 9 ;
nC 6 6 * 9 ;
nC 7 7 * 9 ;
nC 8 8 * 9 ;
nC 9 9 * 9 ;
nC - - * 9 ;
nC a a * 9 ;
nC A A * 9 ;
nC b b * 9 ;
nC B B * 9 ;
nC c c * 9 ;
nC C C * 9 ;
nC d d * 9 ;
nC D D * 9 ;
nC e e * 9 ;
nC E E * 9 ;
nC f f * 9 ;
nC F F * 9 ;
nC g g * 9 ;
nC G G * 9 ;
nC h h * 9 ;
nC H H * 9 ;
nC i i * 9 ;
nC I I * 9 ;
nC j j * 9 ;
nC J J * 9 ;
nC k k * 9 ;
nC K K * 9 ;
nC l l * 9 ;
nC L L * 9 ;
nC m m * 9 ;
nC M M * 9 ;
nC n n * 9 ;
nC N N * 9 ;
nC o o * 9 ;
nC O O * 9 ;
nC p p * 9 ;
nC P P * 9 ;
nC q q * 9 ;
nC Q Q * 9 ;
nC r r * 9 ;
nC R R * 9 ;
nC s s * 9 ;
nC S S * 9 ;
nC t t * 9 ;
nC T T * 9 ;
nC u u * 9 ;
nC U U * 9 ;
nC v v * 9 ;
nC V V * 9 ;
nC w w * 9 ;
nC W W * 9 ;
nC x x * 9 ;
nC X X * 9 ;
nC y y * 9 ;
nC Y Y * 9 ;
nC z z * 9 ;
nC Z Z * 9 ;
nC ( ( * fC ;
fC ] ] l fC1 ;
fC * * l fC ;
fC1 _ [ * cl ;
fC1 * * l fC1 ;
cl [ _ r cl ;
cl ] _ r cl ;
cl ~ _ r cl ;
cl ( _ r clO ;
clO ) _ * halt-accept ;
clO * _ r clO ;
cl ) ) * halt-accept ;
cl * * r cl ;
; lc r * * lc
; tpecca-tlah * ) ) lc
; Olc r _ * Olc
; tpecca-tlah * _ ) Olc
; Olc r _ ( lc
; lc r _ ~ lc
; lc r _ ] lc
; lc r _ [ lc
; 1Cf l * * 1Cf
; lc * [ _ 1Cf
; Cf l * * Cf
; 1Cf l ] ] Cf
; Cf * ) ) Cn
; 9 * Z Z Cn
; 9 * z z Cn
; 9 * Y Y Cn
; 9 * y y Cn
; 9 * X X Cn
; 9 * x x Cn
; 9 * W W Cn
; 9 * w w Cn
; 9 * V V Cn
; 9 * v v Cn
; 9 * U U Cn
; 9 * u u Cn
; 9 * T T Cn
; 9 * t t Cn
; 9 * S S Cn
; 9 * s s Cn
; 9 * R R Cn
; 9 * r r Cn
; 9 * Q Q Cn
; 9 * q q Cn
; 9 * P P Cn
; 9 * p p Cn
; 9 * O O Cn
; 9 * o o Cn
; 9 * N N Cn
; 9 * n n Cn
; 9 * M M Cn
; 9 * m m Cn
; 9 * L L Cn
; 9 * l l Cn
; 9 * K K Cn
; 9 * k k Cn
; 9 * J J Cn
; 9 * j j Cn
; 9 * I I Cn
; 9 * i i Cn
; 9 * H H Cn
; 9 * h h Cn
; 9 * G G Cn
; 9 * g g Cn
; 9 * F F Cn
; 9 * f f Cn
; 9 * E E Cn
; 9 * e e Cn
; 9 * D D Cn
; 9 * d d Cn
; 9 * C C Cn
; 9 * c c Cn
; 9 * B B Cn
; 9 * b b Cn
; 9 * A A Cn
; 9 * a a Cn
; 9 * - - Cn
; 9 * 9 9 Cn
; 9 * 8 8 Cn
; 9 * 7 7 Cn
; 9 * 6 6 Cn
; 9 * 5 5 Cn
; 9 * 4 4 Cn
; 9 * 3 3 Cn
; 9 * 2 2 Cn
; 9 * 1 1 Cn
; 9 * 0 0 Cn
; pS l @ _ Cn
; pS@ r * * pS@
; Cn r _ @ pS@
; 1pS l * * 1pS
; pS@ r ~ _ 1pS
; pS l * * pS
; 1pS l ] ] pS
; Z@ r * * Z@
; Cn r Z @ Z@
; aZ l * * aZ
; Z@ r Z _ aZ
; Z l * * Z
; aZ l ] ] Z
; z@ r * * z@
; Cn r z @ z@
; az l * * az
; z@ r z _ az
; z l * * z
; az l ] ] z
; Y@ r * * Y@
; Cn r Y @ Y@
; aY l * * aY
; Y@ r Y _ aY
; Y l * * Y
; aY l ] ] Y
; y@ r * * y@
; Cn r y @ y@
; ay l * * ay
; y@ r y _ ay
; y l * * y
; ay l ] ] y
; X@ r * * X@
; Cn r X @ X@
; aX l * * aX
; X@ r X _ aX
; X l * * X
; aX l ] ] X
; x@ r * * x@
; Cn r x @ x@
; ax l * * ax
; x@ r x _ ax
; x l * * x
; ax l ] ] x
; W@ r * * W@
; Cn r W @ W@
; aW l * * aW
; W@ r W _ aW
; W l * * W
; aW l ] ] W
; w@ r * * w@
; Cn r w @ w@
; aw l * * aw
; w@ r w _ aw
; w l * * w
; aw l ] ] w
; V@ r * * V@
; Cn r V @ V@
; aV l * * aV
; V@ r V _ aV
; V l * * V
; aV l ] ] V
; v@ r * * v@
; Cn r v @ v@
; av l * * av
; v@ r v _ av
; v l * * v
; av l ] ] v
; U@ r * * U@
; Cn r U @ U@
; aU l * * aU
; U@ r U _ aU
; U l * * U
; aU l ] ] U
; u@ r * * u@
; Cn r u @ u@
; au l * * au
; u@ r u _ au
; u l * * u
; au l ] ] u
; T@ r * * T@
; Cn r T @ T@
; aT l * * aT
; T@ r T _ aT
; T l * * T
; aT l ] ] T
; t@ r * * t@
; Cn r t @ t@
; at l * * at
; t@ r t _ at
; t l * * t
; at l ] ] t
; S@ r * * S@
; Cn r S @ S@
; aS l * * aS
; S@ r S _ aS
; S l * * S
; aS l ] ] S
; s@ r * * s@
; Cn r s @ s@
; as l * * as
; s@ r s _ as
; s l * * s
; as l ] ] s
; R@ r * * R@
; Cn r R @ R@
; aR l * * aR
; R@ r R _ aR
; R l * * R
; aR l ] ] R
; r@ r * * r@
; Cn r r @ r@
; ar l * * ar
; r@ r r _ ar
; r l * * r
; ar l ] ] r
; Q@ r * * Q@
; Cn r Q @ Q@
; aQ l * * aQ
; Q@ r Q _ aQ
; Q l * * Q
; aQ l ] ] Q
; q@ r * * q@
; Cn r q @ q@
; aq l * * aq
; q@ r q _ aq
; q l * * q
; aq l ] ] q
; P@ r * * P@
; Cn r P @ P@
; aP l * * aP
; P@ r P _ aP
; P l * * P
; aP l ] ] P
; p@ r * * p@
; Cn r p @ p@
; ap l * * ap
; p@ r p _ ap
; p l * * p
; ap l ] ] p
; O@ r * * O@
; Cn r O @ O@
; aO l * * aO
; O@ r O _ aO
; O l * * O
; aO l ] ] O
; o@ r * * o@
; Cn r o @ o@
; ao l * * ao
; o@ r o _ ao
; o l * * o
; ao l ] ] o
; N@ r * * N@
; Cn r N @ N@
; aN l * * aN
; N@ r N _ aN
; N l * * N
; aN l ] ] N
; n@ r * * n@
; Cn r n @ n@
; an l * * an
; n@ r n _ an
; n l * * n
; an l ] ] n
; M@ r * * M@
; Cn r M @ M@
; aM l * * aM
; M@ r M _ aM
; M l * * M
; aM l ] ] M
; m@ r * * m@
; Cn r m @ m@
; am l * * am
; m@ r m _ am
; m l * * m
; am l ] ] m
; L@ r * * L@
; Cn r L @ L@
; aL l * * aL
; L@ r L _ aL
; L l * * L
; aL l ] ] L
; l@ r * * l@
; Cn r l @ l@
; al l * * al
; l@ r l _ al
; l l * * l
; al l ] ] l
; K@ r * * K@
; Cn r K @ K@
; aK l * * aK
; K@ r K _ aK
; K l * * K
; aK l ] ] K
; k@ r * * k@
; Cn r k @ k@
; ak l * * ak
; k@ r k _ ak
; k l * * k
; ak l ] ] k
; J@ r * * J@
; Cn r J @ J@
; aJ l * * aJ
; J@ r J _ aJ
; J l * * J
; aJ l ] ] J
; j@ r * * j@
; Cn r j @ j@
; aj l * * aj
; j@ r j _ aj
; j l * * j
; aj l ] ] j
; I@ r * * I@
; Cn r I @ I@
; aI l * * aI
; I@ r I _ aI
; I l * * I
; aI l ] ] I
; i@ r * * i@
; Cn r i @ i@
; ai l * * ai
; i@ r i _ ai
; i l * * i
; ai l ] ] i
; H@ r * * H@
; Cn r H @ H@
; aH l * * aH
; H@ r H _ aH
; H l * * H
; aH l ] ] H
; h@ r * * h@
; Cn r h @ h@
; ah l * * ah
; h@ r h _ ah
; h l * * h
; ah l ] ] h
; G@ r * * G@
; Cn r G @ G@
; aG l * * aG
; G@ r G _ aG
; G l * * G
; aG l ] ] G
; g@ r * * g@
; Cn r g @ g@
; ag l * * ag
; g@ r g _ ag
; g l * * g
; ag l ] ] g
; F@ r * * F@
; Cn r F @ F@
; aF l * * aF
; F@ r F _ aF
; F l * * F
; aF l ] ] F
; f@ r * * f@
; Cn r f @ f@
; af l * * af
; f@ r f _ af
; f l * * f
; af l ] ] f
; E@ r * * E@
; Cn r E @ E@
; aE l * * aE
; E@ r E _ aE
; E l * * E
; aE l ] ] E
; e@ r * * e@
; Cn r e @ e@
; ae l * * ae
; e@ r e _ ae
; e l * * e
; ae l ] ] e
; D@ r * * D@
; Cn r D @ D@
; aD l * * aD
; D@ r D _ aD
; D l * * D
; aD l ] ] D
; d@ r * * d@
; Cn r d @ d@
; ad l * * ad
; d@ r d _ ad
; d l * * d
; ad l ] ] d
; C@ r * * C@
; Cn r C @ C@
; aC l * * aC
; C@ r C _ aC
; C l * * C
; aC l ] ] C
; c@ r * * c@
; Cn r c @ c@
; ac l * * ac
; c@ r c _ ac
; c l * * c
; ac l ] ] c
; B@ r * * B@
; Cn r B @ B@
; aB l * * aB
; B@ r B _ aB
; B l * * B
; aB l ] ] B
; b@ r * * b@
; Cn r b @ b@
; ab l * * ab
; b@ r b _ ab
; b l * * b
; ab l ] ] b
; A@ r * * A@
; Cn r A @ A@
; aA l * * aA
; A@ r A _ aA
; A l * * A
; aA l ] ] A
; a@ r * * a@
; Cn r a @ a@
; aa l * * aa
; a@ r a _ aa
; a l * * a
; aa l ] ] a
; 9@ r * * 9@
; Cn r 9 @ 9@
; a9c l * * a9c
; 9@ r 9 _ a9c
; 9c l * * 9c
; a9c l ] ] 9c
; 8@ r * * 8@
; Cn r 8 @ 8@
; a8c l * * a8c
; 8@ r 8 _ a8c
; 8c l * * 8c
; a8c l ] ] 8c
; 7@ r * * 7@
; Cn r 7 @ 7@
; a7c l * * a7c
; 7@ r 7 _ a7c
; 7c l * * 7c
; a7c l ] ] 7c
; 6@ r * * 6@
; Cn r 6 @ 6@
; a6c l * * a6c
; 6@ r 6 _ a6c
; 6c l * * 6c
; a6c l ] ] 6c
; 5@ r * * 5@
; Cn r 5 @ 5@
; a5c l * * a5c
; 5@ r 5 _ a5c
; 5c l * * 5c
; a5c l ] ] 5c
; 4@ r * * 4@
; Cn r 4 @ 4@
; a4c l * * a4c
; 4@ r 4 _ a4c
; 4c l * * 4c
; a4c l ] ] 4c
; 3@ r * * 3@
; Cn r 3 @ 3@
; a3c l * * a3c
; 3@ r 3 _ a3c
; 3c l * * 3c
; a3c l ] ] 3c
; 2@ r * * 2@
; Cn r 2 @ 2@
; a2c l * * a2c
; 2@ r 2 _ a2c
; 2c l * * 2c
; a2c l ] ] 2c
; 1@ r * * 1@
; Cn r 1 @ 1@
; a1c l * * a1c
; 1@ r 1 _ a1c
; 1c l * * 1c
; a1c l ] ] 1c
; 0@ r * * 0@
; Cn r 0 @ 0@
; a0c l * * a0c
; 0@ r 0 _ a0c
; 0c l * * 0c
; a0c l ] ] 0c
; Z l @ Z 9
; z l @ z 9
; Y l @ Y 9
; y l @ y 9
; X l @ X 9
; x l @ x 9
; W l @ W 9
; w l @ w 9
; V l @ V 9
; v l @ v 9
; U l @ U 9
; u l @ u 9
; T l @ T 9
; t l @ t 9
; S l @ S 9
; s l @ s 9
; R l @ R 9
; r l @ r 9
; Q l @ Q 9
; q l @ q 9
; P l @ P 9
; p l @ p 9
; O l @ O 9
; o l @ o 9
; N l @ N 9
; n l @ n 9
; M l @ M 9
; m l @ m 9
; L l @ L 9
; l l @ l 9
; K l @ K 9
; k l @ k 9
; J l @ J 9
; j l @ j 9
; I l @ I 9
; i l @ i 9
; H l @ H 9
; h l @ h 9
; G l @ G 9
; g l @ g 9
; F l @ F 9
; f l @ f 9
; E l @ E 9
; e l @ e 9
; D l @ D 9
; d l @ d 9
; C l @ C 9
; c l @ c 9
; B l @ B 9
; b l @ b 9
; A l @ A 9
; a l @ a 9
; 9c l @ 9 9
; 8c l @ 8 9
; 7c l @ 7 9
; 6c l @ 6 9
; 5c l @ 5 9
; 4c l @ 4 9
; 3c l @ 3 9
; 2c l @ 2 9
; 1c l @ 1 9
; 0c l @ 0 9
; 8 r * * 8
; 9 r ( ( 8
; 8 r ] _ 7
; 7 l _ _ 6
; 5 l * * 5
; 0 * ( ( 5
; 3 r * * 3
; 5 l ) _ )3
; 3 r * * 4
; )3 l _ _ 4
; 4 r _ _ 3
; 3 r ( _ 2
; 2 l _ _ 1
; 2 l * * 0
; 6 l ( ( 0

Provalo online!

Provalo al contrario!

Ho usato questo sito per invertirlo.


Bene...! Spero che tu non abbia scritto la prima metà, manualmente! Spero davvero!
Night2

1
Non è stato poi tanto dopo aver risolto la strategia. Dopo che la logica di base è stata definita, era principalmente copia / incolla / modifica seguita dal debug dei miei tentativi ovattati di copia / incolla / modifica.
ouflak,

3

Pyth, 5 3 byte

z_k

-2 byte realizzando comunque il capovolgimento della nuova riga

Spiegazione:

z   # Implicitly print the input
 _k # Implicitly print the reversed empty string

Spiegazione invertita:

k     # Implicitly print the empty string
 _z   # Implicitly print the reversed input



2

Cubix , 19 byte

.@o?A^;/|?$oqBA.UW.

Provalo online!

Cubified

    . @
    o ?
A ^ ; / | ? $ o
q B A . U W . .
    . .
    . .
  • A^ ottieni tutti gli input ed entra nel loop
  • o? emette i TOS di stack e test
  • @ esce se risulta negativo
  • /;^ rifletti indietro, pop TOS e re-enter loop

Tutti gli altri comandi vengono evitati.

Reversed

.WU.ABqo$?|/;^A?o@.

Provalo online!

Cubified

   . W
    U .
A B q o $ ? | /
; ^ A ? o @ . .
    . .
    . .
  • ABq Ottieni tutto l'input, inverti e rilascia TOS in fondo allo stack
  • o$?|? output TOS, salta il test e ricollegalo al test
  • @ arrestare se test se negativo
  • WUq cambia corsia, u-turn su drop TOS inizio del loop


2

Pip , 4 byte

aVRa

Provalo online! ! enilno ti yrT

Fa uso del fatto che RVè l'operatore inverso ma VRè una variabile non definita. Entrambe le versioni stampano il valore della loro ultima espressione; nella versione standard, questo è a(con il primo ae l' VRessere no-ops), mentre nella versione inversa, questo è RVa(con il primo aè un no-op).




2

MathGolf , 3 byte

x;l

Spiegazione:

x   Reverse the implicit input
 ;  Discard the string
  l Push a string input
Implicit output TOS

invertito:

l   Push a string input
 ;  Discard it
  x Reverse the implicit input
Implicit output TOS

2

Pushy , 4 byte

"\"@

Provalo online: avanti , indietro

Implementazione semplice con il carattere di commento \. Nel programma forward, "stampa l'input e il resto è un commento; nel programma a ritroso,@ inverte l'input prima della stampa.

In alternativa, potremmo sostituire \con c, che cancellerebbe l'input dallo stack.


2

Kotlin , 15 byte

La mia prima risposta di Kotlin e molto più corta dell'equivalente Java!

s//)(desrever.s

Provalo online!

invertito:

s.reversed()//s

! enilno ti yrT


1
Le parentesi sono sbagliate. Una risposta più corretta sarebbe s//)(desrever.s. Comunque penso che sia consuetudine fornire almeno un lambda completo a Kotlin (o almeno a Java). Quindi qualcosa come {it}//})(desrever.ti{dovrebbe fare il trucco.
Roman Gräf,

2

J , 7 byte

,&.|:@]

invertito:

]@:|.&,

Provalo online!

Il commento di Jonah sulla risposta APL di Adam mi ha fatto accettare la sfida. È stato piuttosto difficile, perché le inflessioni .e: si attaccano sempre al simbolo alla loro sinistra, e una suola| (valore astratto) non è contenta delle stringhe.

Come funzionano questi

Fondamentalmente, è un mix casuale di no-op collegati attraverso vari connettori.

,&.|:@]
     @]   Pass the argument unchanged
 &.|:     Apply inverse of |: (transpose), no-op on single string
,         Ravel, no-op on a single string
 &.|:     Apply |: again, still no-op

]@:|.&,
     &,   Ravel, no-op
 @:|.     Reverse
]         Pass the argument unchanged

Questa risposta è più corta di un byte rispetto al banale abuso di commenti:

J , 8 byte

]NB.BN.|

invertito:

|.NB.BN]

Provalo online!

In J, l'indicatore di commento in linea è NB., che è più lungo di ogni altra lingua che conosco.


2

W , 2 byte

Praticamente uguale alla soluzione 05AB1E.

a_

Spiegazione

a   % Push the input
 _  % Reverse the input
    % Implicit print the top of the stack

noitanalpxE

_   % Reverse the implicit input
 a  % Push the input
    % Implicit print the top of the stack






1

C (gcc) , 56 byte

Nulla di bello. Avrebbe usato, puts()ma lo spazio bianco finale non sarebbe stato coerente tra le due varianti.

f(int*s){printf(s);}//};))1+s(f,s*(rahctup&&s*{)s*rahc(f

Provalo online!

f(char*s){*s&&putchar(*s,f(s+1));}//};)s(ftnirp{)s*tni(f

Invertito!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.