Le but ici est de simplement inverser une chaîne, avec une torsion:
Gardez la capitalisation aux mêmes endroits.
Exemple d'entrée 1: Hello, Midnightas
Exemple de sortie 1:SathginDim ,olleh
Exemple Entrée 2: .Q
Sortie Exmaple 2:q.
Règles :
- Sortie vers STDOUT, entrée depuis STDIN
- Le gagnant sera choisi le 13 juillet sur GMT + 3 12:00 (une semaine)
- L'entrée ne peut être constituée que de symboles ASCII, ce qui facilite la tâche des programmes qui n'utilisent aucun codage contenant des caractères non ASCII.
- Toute ponctuation se retrouvant dans une position où il y avait une majuscule doit être ignorée.
Réponses:
TCC - 4 octets
Essayez-le en ligne!
Explication:
la source
tcc.lua
avant que le défi ne soit publié? Étant donné que vous avez récemment ajouté des commandes pour résoudre trois autres défis, je suppose que non. Si votre réponse nécessite une version de la langue postérieure au défi, vous devez la marquer comme non concurrente dans l'en-tête. Je supprimerai mon downvote lorsque vous ajouterez l'étiquette ou apporterez la preuve que votre code a fonctionné dans une version antérieure.Python, 71 octets
Essayez-le en ligne
-3 octets de Ruud, plus l'inspiration pour 2 autres.
-4 octets de plus de FryAmTheEggman
la source
lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))
est trois octets plus court(z*2).title()[c.isupper()-1]
devrait marcher.~c.isupper()
au lieu dec.isupper()-1
Python 2, 73 octets
Puisque les règles spécifient que l'entrée est ascii:
Tout le mérite revient à @Mego, mais je n'avais pas la réputation de simplement commenter sa réponse.
la source
Perl, 31 + 2 (
-lp
) = 33 octetsCette solution vient de @Ton Hospel (13 octets de moins que la mienne).
Mais vous en aurez besoin
l
et vousp
allumerez. Pour l'exécuter:la source
-a
autosplit, je pense que j'aurais pu l'utiliser plusieurs fois dans le passé! Je dois m'en souvenir! Je pense que vous pouvez enregistrer un autre octet en utilisantmap...,...
au lieu de cemap{...}...
que vous avez$F
au début! :)perl -lpe 's%.%(lc$>$&?u:l)."c chop"%eeg
-a
est sous-entendu par-F
-a
(et-n
) d'être impliqué par-F
, je l'ai lu il y a quelque temps sur perlrun, je l'ai essayé, mais cela n'a pas fonctionné; mais je l'ai réessayé maintenant et cela fonctionne bien, donc je suppose que j'ai fait quelque chose de mal à l'époque. Merci.Pyth,
1311109 octetsMerci à @FryAmTheEggman de me l'avoir rappelé
V
et à @LeakyNun pour un autre octet.Essayez-le en ligne! maintenant sur mobile, mise à jour du lien un peu
la source
srV_Qm!rId0
a 11 ans, mais je pense qu'il pourrait être possible de raccourcir cette carte ...d
et vous avez enregistré un octet.srV_Qm!/G
devrait sauver un octetPython, 66 octets
Se reproduit à travers les indices
i
, en prenant le personnages[~i]
de l'arrière et le cas des[i]
l'avant. Être capital est vérifié comme se situant dans la gamme contiguë@ABC...XYZ[
. Crédit à FryAmTheEggman de l'(_*2).title()
astuce.la source
Rétine ,
756765 octetsLe nombre d'octets suppose un codage ISO 8859-1.
Essayez-le en ligne! (La première ligne active une suite de tests avec plusieurs cas de test séparés par un saut de ligne.)
la source
JavaScript (ES6),
9583 octetsEdit: enregistré un énorme 12 octets grâce à @ edc65.
la source
r=
n'est pas nécessaire.)Pyke,
11109 octetsEssayez-le ici!
la source
05AB1E ,
19161513 octetsMerci à Emigna pour avoir économisé 3 octets!
Je vais probablement me faire battre par Jelly ... Code:
Utilise l' encodage CP-1252 . Essayez-le en ligne! .
la source
S.l_v¹lRNèyiu}?
est 1 octet plus courtÂuvy¹Nè.lilë}?
a 14 ans. Je suis content de pouvoir vous aider pour une fois :)Ruvy¹Nè.lil}?
réellement. Je n'ai pas utilisé la bifurcation et j'ai oublié de retirer le reste. Donc 13.MATL , 13 octets
Essayez-le en ligne!
la source
J , 30 octets
Ne prend pas en charge non ASCII
la source
Brachylog , 28 octets
Explication
Prédicat principal:
Prédicat 1:
la source
TSQL, 175 octets
Golfé:
Non golfé
Violon
la source
En fait, 25 octets
Essayez-le en ligne!
Explication:
la source
Haskell,
83807571 octetsLa façon la plus simple à laquelle je pouvais penser.
la source
(#)
,k
peut être réécrit dans un style sans pointk=reverse>>=zipWith(#)
b
asf a|isUpper a=toUpper|1>0=toLower
, bien que cela soit en conflit avec l'amélioration de Flonk.f
et réécrire Flonk dek
àzipWith f<*>reverse
.s
?k=
.PowerShell,
154,152,99, 86 octetsMerci @TimmyD de m'avoir sauvé 47 octets (j'en ai également économisé 6 supplémentaires)
Merci @TessellatingHeckler d'avoir enregistré 13 octets supplémentaires.
Dernier:
Original:
Formatage normal:
Dernier (semble meilleur que deux lignes à mon avis):
Explication:
Original:
La première affiche ici, était motivée parce que je vois rarement PowerShell,
mais àToutes suggestions appréciées.154152 octets sur celui-ci ... je peux voir pourquoi!J'ai appris que je dois changer complètement ma façon de penser au golf dans le code et son plaisir!
la source
.tostring()
par des guillemets et en utilisant la manipulation de nombres entiers ASCII plutôt que l'expression régulière. Essayez ce qui suit, pour 105 octets -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
est plus court queY-containsX
, et vous pouvez changer votreif
pour que le faux opérateur ternaire obtienne 86 octets -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
Dyalog APL , 12 octets
819⌶
est la fonction de pliage du boîtierf←
parce que son nom est long, nous l'assignons à f⊢≠f
Booléen où le texte diffère du texte en minusculesf¨⍨
utilisez cela (1 signifie majuscule, 0 signifie minuscule) pour plier chaque lettre ...⌽
... du texte inverséGère les fichiers non ASCII conformément aux règles du consortium Unicode.
la source
CJam, 22 octets
Testez-le ici.
la source
Raquette, 146 octets
La raquette est mauvaise à toute cette affaire de "golf".
Haussement Comme toujours, toute aide pour raccourcir cela serait très appréciée.
la source
Jolf, 21 octets
Essayez-le ici!
Explication
la source
(d)is function
... sacrifiez l'orthographe pour le golf!Perl 6 , 29 octets
la source
C #,
8685 octetsAC # lambda où l'entrée et la sortie sont une chaîne. Vous pouvez l'essayer sur .NetFiddle .
Je suis mal à comprendre pourquoi je ne peux pas atteins convertirchar.ToLower(c)
àc+32
. J'espère y remédier!12 octets économisés grâce à @PeterTaylor (
c|32
pour ajouter 32 à la valeur asciic
etc&~32
pour soustraire 32). Le résultat serait de 72 octets (mais peut échouer sur un caractère non alpha).la source
c|32
au lieu dec+32
, mais cela ne fonctionnera pas avec les caractères non alpha.PHP, 128 octets
Je vais peut-être essayer de l'optimiser davantage, mais je vais le laisser tel quel pour l'instant.
la source
Octave,
5150 octets@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))
la source
VIM, 46 octets
Ce serait trois octets
g~G
si nous n'avions pas besoin de lire depuis stdin ou d'écrire vers stdout, mais bon ...Pour tester cela, exécutez
Ceci est ma première soumission ici, je ne sais pas si ce genre de soumission est acceptable.
la source
:se ri<cr>C<C-r>"
mais vous devrez alors comprendre comment mettre en majuscule les bonnes lettres.Javascript (à l'aide d'une bibliothèque externe) (224 octets)
Avertissement: en utilisant une bibliothèque que j'ai écrite pour apporter LINQ de C # à Javascript
la source
Sed, 113 + 1 = 114 octets
Pourquoi? Parce que c'est amusant d'utiliser le mauvais outil pour faire les choses: P
Utilisation: Exécuter
sed -rf file
, saisir du texte et appuyer sur Ctrl+ D(envoyer EOF).Golfé:
Non golfé:
la source
Java 7,
221217180 octetsBeaucoup d'octets enregistrés grâce à l' approche de @LeakuNun .
Cas non testés et testés:
Essayez-le ici.
Sortie:
la source
char[]
.String a="";
et la modificationo+=
de0[i]=
pour économiser des octets, mais Java n'a pas de caractère.toUpperCase()
/.toLowerCase()
méthode, et la conversion de char en String, utilise la méthode supérieure / inférieure, puis de nouveau en char nécessiterait (beaucoup) plus octets. Mais n'hésitez pas à bifurquer l'idéone liée et à trouver quelque chose pour fairechar[]
fonctionner en moins d'octets.C
la source