El objetivo aquí es simplemente invertir una cadena, con un solo giro:
mantener la capitalización en los mismos lugares.
Ejemplo de entrada 1: Hello, Midnightas
Ejemplo de salida 1:SathginDim ,olleh
Ejemplo de entrada 2: .Q
Salida de ejemplo 2:q.
reglas :
- Salida a STDOUT, entrada de STDIN
- El ganador será elegido el 13 de julio en GMT + 3 12:00 (una semana)
- La entrada solo puede consistir en símbolos ASCII, lo que facilita los programas que no utilizan ninguna codificación que contenga caracteres no ASCII.
- Cualquier puntuación que termine en una posición donde haya una letra mayúscula debe ser ignorada.
Respuestas:
TCC - 4 bytes
Pruébalo en línea!
Explicación:
fuente
tcc.lua
anterior a la publicación del desafío? Dado que recientemente ha agregado comandos para resolver otros tres desafíos, supongo que no lo hizo. Si su respuesta requiere una versión del idioma posterior al desafío, debe etiquetarla como no competitiva en el encabezado. Eliminaré mi voto negativo cuando agregue la etiqueta o proporcione pruebas de que su código funcionó en una versión anterior.Python, 71 bytes
Pruébalo en línea
-3 bytes de Ruud, más la inspiración para 2 más.
-4 bytes más de FryAmTheEggman
fuente
lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))
es tres bytes más corto(z*2).title()[c.isupper()-1]
Deberia trabajar.~c.isupper()
lugar dec.isupper()-1
Python 2, 73 bytes
Como las reglas especifican que la entrada es ascii:
Sin embargo, todo el crédito va a @Mego, pero no tenía la reputación de solo comentar su respuesta.
fuente
Perl, 31 + 2 (
-lp
) = 33 bytesEsta solución es de @Ton Hospel (13 bytes más corta que la mía).
Pero necesitará
l
y sep
enciende. Para ejecutarlo:fuente
-a
autosplit, ¡creo que podría haberlo usado muchas veces en el pasado! ¡Necesito recordar eso! ¡Creo que puedes guardar otro byte usando enmap...,...
lugar demap{...}...
como lo hiciste$F
al principio! :)perl -lpe 's%.%(lc$>$&?u:l)."c chop"%eeg
-a
está implícito por-F
-a
(y-n
) estar implícito-F
, lo leí hace un tiempo en perlrun, lo probé, pero no funcionó; pero lo intenté de nuevo ahora y funciona bien, así que supongo que hice algo mal en ese entonces. Gracias.Pyth,
1311109 bytesGracias a @FryAmTheEggman por recordarme
V
y a @LeakyNun por otro byte.Pruébalo en línea! ahora en el móvil, actualizando el enlace en un momento
fuente
srV_Qm!rId0
es 11, pero creo que podría ser posible acortar ese mapa ...d
y guardó un byte.srV_Qm!/G
debería guardar un bytePython, 66 bytes
Recurre a través de los índices
i
, tomando el personajes[~i]
desde atrás y el casos[i]
desde el frente. Ser capital se verifica como si estuviera en el rango contiguo@ABC...XYZ[
. Gracias a FryAmTheEggman por el(_*2).title()
truco.fuente
Retina ,
756765 bytesEl recuento de bytes asume la codificación ISO 8859-1.
Pruébalo en línea! (La primera línea habilita un conjunto de pruebas con múltiples casos de prueba separados por salto de línea).
fuente
JavaScript (ES6),
9583 bytesEditar: ahorró 12 bytes masivos gracias a @ edc65.
fuente
r=
es necesario.)Pyke,
11109 bytesPruébalo aquí!
fuente
05AB1E ,
19161513 bytes¡Gracias a Emigna por guardar 3 bytes!
Probablemente sea golpeado por Jelly ... Código:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
S.l_v¹lRNèyiu}?
es 1 byte más cortoÂuvy¹Nè.lilë}?
es 14. Simplemente feliz de poder ayudarte por una vez :)Ruvy¹Nè.lil}?
actualmente. No utilicé la bifurcación y olvidé eliminar la otra. Entonces 13.MATL , 13 bytes
Pruébalo en línea!
fuente
J , 30 bytes
No es compatible con no ASCII
fuente
Brachylog , 28 bytes
Explicación
Predicado principal:
Predicado 1:
fuente
TSQL, 175 bytes
Golfizado:
Sin golf
Violín
fuente
En realidad, 25 bytes
Pruébalo en línea!
Explicación:
fuente
Haskell,
83807571 bytesLa forma más directa que se me ocurrió.
fuente
(#)
,k
puede reescribirse en un estilo sin puntos:k=reverse>>=zipWith(#)
eso ahorra un par de bytes :)b
comof a|isUpper a=toUpper|1>0=toLower
, aunque esto entra en conflicto con la mejora de Flonk.f
y volver a escribir Flonk dek
azipWith f<*>reverse
.s
?k=
.PowerShell,
154,152,99, 86 bytesGracias @TimmyD por ahorrarme la friolera de 47 bytes (también guardé 6 adicionales)
Gracias @TessellatingHeckler por guardar 13 bytes adicionales.
Último:
Original:
Formato normal:
Lo último (se ve mejor como dos líneas en mi opinión):
Explicación:
Original:
El póster por primera vez aquí, estaba motivado porque rara vez veo PowerShell,
pero conCualquier sugerencia apreciada.154152 bytes en este ... ¡Puedo ver por qué!¡He aprendido que debo cambiar completamente mi forma de pensar al golf en código y es divertido!
fuente
.tostring()
comillas y utilizando la manipulación de enteros ASCII en lugar de expresiones regulares. Pruebe lo siguiente, para 105 bytes -param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}})
.param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
X-inY
es más corto queY-containsX
, y puede cambiar suif
para que el operador ternario falso obtenga 86 bytes -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
Dyalog APL , 12 bytes
819⌶
es la función de plegado del estuchef←
porque su nombre es largo, lo asignamos a f⊢≠f
Booleano donde el texto difiere del texto en minúsculasf¨⍨
use eso (1 significa mayúscula, 0 significa minúscula) para doblar cada letra ...⌽
... del texto invertidoManeja no ASCII de acuerdo con las reglas del Consorcio Unicode.
fuente
CJam, 22 bytes
Pruébalo aquí.
fuente
Raqueta, 146 bytes
La raqueta es mala en todo este asunto del "golf".
Encogimiento de hombros Como siempre, cualquier ayuda con este acortamiento sería muy apreciada.
fuente
Jolf, 21 bytes
Pruébalo aquí!
Explicación
fuente
(d)is function
... sacrificar la ortografía por el bien del golf!Perl 6 , 29 bytes
fuente
C #,
8685 bytesAC # lambda donde la entrada y la salida son una cadena. Puedes probarlo en .NetFiddle .
Estoy luchando para entender por qué no puedo logro convertirchar.ToLower(c)
ac+32
. ¡Espero arreglarlo!12 bytes guardados gracias a @PeterTaylor (
c|32
para agregar 32 al valor ascii dec
yc&~32
restar 32). El resultado sería 72 bytes (pero puede fallar en caracteres no alfa).fuente
c|32
lugar dec+32
, pero no funcionará con caracteres no alfa.PHP, 128 bytes
Puedo intentar optimizar esto aún más, pero lo dejaré como está por ahora.
fuente
Octava,
5150 bytes@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))
fuente
VIM, 46 bytes
Serían tres bytes
g~G
si no necesitáramos leer desde stdin o escribir en stdout, pero bueno ...Para probar esto, ejecuta
Esta es mi primera presentación aquí, no estoy seguro si este tipo de presentación es aceptable.
fuente
:se ri<cr>C<C-r>"
pero luego tendrá que descubrir cómo poner en mayúscula las letras correctas.Javascript (usando una biblioteca externa) (224 bytes)
Descargo de responsabilidad: utilizando una biblioteca que escribí para traer LINQ de C # a Javascript
fuente
Sed, 113 + 1 = 114 bytes
¿Por qué? Porque es divertido usar la herramienta incorrecta para hacer cosas: P
Uso: Ejecutar
sed -rf file
, ingresar texto y presionar Ctrl+ D(enviar EOF).Golfizado:
Sin golf:
fuente
Java 7,
221217180 bytesUn montón de bytes guardados gracias al enfoque de @LeakuNun .
Sin golf y casos de prueba:
Pruébalo aquí
Salida:
fuente
char[]
.String a="";
y cambiaro+=
a0[i]=
para guardar bytes, pero Java no tiene un carácter.toUpperCase()
/.toLowerCase()
método, y la conversión de char a String, usar el método superior / inferior y luego volver a char requeriría (mucho) más bytes Pero siéntase libre de bifurcar la ideona vinculada y encontrar algo para hacer quechar[]
funcione en menos bytes.do
fuente