Les lettres des mots veulent l'équité.
Ils ont décidé d'apparaître de manière égale le même nombre de fois dans une phrase.
Exemple:
Priorities
Va devenir:
Ppprrioooritttieeesss
Chaque lettre apparaît 3 fois, comme la lettre la plus courante i
, apparaissant 3 fois.
Peu importe où vous mettez les lettres répétées, tant qu'elles sont à côté d'une lettre similaire.
C'est à dire:
Pppriooorritttieeesss
est OK (la lettre «r»)
Ppprioororitttieeesss
n'est pas OK (la lettre «r»)
Un autre exemple:
invoice
Va devenir:
innvvooiccee
Un autre exemple:
Remittance Advice
Va devenir:
Rrremmmiitttaannncce Adddvvvice
L'espace, la virgule, le point d'interrogation, la citation, etc. ne sont pas considérés comme des lettres pour ce défi. Il suffit de considérer [a-zA-Z]. Une fois que l'espace est suffisant, l'ordre des lettres doit rester le même.
La majuscule des lettres n'a pas d'importance, les majuscules et les minuscules sont des comptés comme la même lettre. C'est-à-dire: Pip
a 2 «P» et 1 «I», il deviendra donc Piip
.
Il est possible que les lettres insensibles à la casse se présentent sous n'importe quelle forme, Piip=piip=piiP=PiiP
C'est du code-golf
la source
Réponses:
05AB1E , 16 octets
Essayez-le en ligne!
Explication
la source
R , 106 octets
Essayez-le en ligne!
Approche Base R:
+
opérateur Rla source
Perl 6 , 82 octets
-3 octets grâce à nwellnhof
Essayez-le en ligne!
Prend une chaîne mutable et la modifie en place.
Explication:
la source
.=
opérateur commea.=lc.=subst(...)
. Je ne sais pas si le changement de casse d'une lettre existante est autorisé. Aussi<:L>
au lieu de<:Ll>
.JavaScript (ES6), 112 octets
Essayez-le en ligne!
Commenté
la source
o[l] = // updates o[l] to a non-numeric value
. Si je comprends bien,o
un tableau d'entiers se trouve-t-il dans les fonctionsF
etg
, mais se transforme-t-il en un tableau de chaînes contenant une ou plusieurs fois le caractèrec
de la partie que j'ai mentionnée précédemment? De plus, je suppose que les valeurs deo
sontundefined
par défaut, puisque vous utilisezo[l]=-~o[l]
au lieu de++o[l]
?o[l]
à jour vers une lettre, toute itération ultérieure avec la même lettre mènera àm - o[l] --> NaN
(entier moins lettre) etl.repeat(NaN) == ''
. (À propos du dernier point: oui, c'est exact.)J ,
335646 octetsEssayez-le en ligne!
Impossible de trouver un moyen d'éviter d'utiliser
~:tolower
deux fois.Comment ça fonctionne
la source
R + stringr, 108 octets
Je ne suis pas très bon
stringr
. Renvoie un mélange de minuscules et de majuscules, car la question indique que cela n'a pas d'importance.Essayez-le en ligne!
Explication
la source
K4 , 35 octets
Solution:
Exemples:
Explication:
Peut être jouable au golf avec une approche différente, continuera à penser
la source
Fusain ,
3332 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Explication:
la source
Java 11,
190176162 162 octets-14 octets grâce à @Nevay .
La sortie est en majuscule.
Essayez-le en ligne. (REMARQUE:
String.repeat(int)
est émulé commerepeat(String,int)
pour le même nombre d'octets, car Java 11 n'est pas encore sur TIO.)Explication:
la source
char
vous voulez dire? Malheureusement non.var
ne peut être utilisé que pour des champs uniques. Au lieu dechar m=1,i=127,a[]=new char[i];
cela, ce seraitvar m=1;var i=127;var a=new char[i];
. Voici une astuce utile de ce que vous pouvez et ne pouvez pas faire avec Java 10var
. (Je pourrais remplacer leint
dans la boucle parvar
, mais le nombre d'octets resterait le même.)var
. Et Java 11 n'a quasiment pas de changement du tout lié au codegolf, à l'exception de laString.repeat
méthode que j'ai déjà utilisée beaucoup de fois. Il a également le nouveauString.stripLeading
ouString.stripTrailing
, qui agit commetrim
mais uniquement les espaces blancs de début / fin, etString.isBlank()
qui est le même queString.trim().isEmpty()
(vide ou blanc uniquement).s->{s=s.toUpperCase();char m=2,i=91,a[]=new char[127];for(int c:s.getBytes())m-=m+~++a[c]>>-1;for(;i-->65;)s=s.replaceFirst(i+"",repeat((i+""),m-a[i]));return s;}
Japt
-h
, 27 octets-3 octets de @ETHproductions
Essayer d'expliquer
Essayez-le en ligne!
la source
ú
astuce est le génie, btw :-)ñ oC ó¥
, même si cela nécessite de rajouter dans le;
...ñ
travaillez-vous sur les cordes?! @ETHproductions, dites-moi s'il vous plaît que c'est un ajout récent et que je ne l'ai pas ignoré tout ce temps!Rubis , 89 octets
Essayez-le en ligne!
J'ai essayé différentes approches, mais ce qui permet d'économiser beaucoup d'octets est d'ajouter un caractère à la fois.
Comment:
la source
Powershell 6, 123 octets
Il utilise une plage de caractères
'a'..'z'
. Voir le script pour Powershell précédent ci-dessous.Script de test expliqué:
Production:
Powershell 5.1-, 133 octets
la source
Rouge , 252 octets
Essayez-le en ligne!
Solution ridiculement longue ...
Explication:
la source
JavaScript (Node.js) ,
140137 octetsEssayez-le en ligne!
+33 octets de ma première solution pour ces contraintes supplémentaires sans fin. JS craint les manipulations de chaîne insensibles à la casse que vous connaissez.
-3 octets en arrière Merci @Arnauld.
Explication
la source
f
s comme stockage temporaire, donc je pensais que ça allaitmap()
Les fonctions de rappel sont sûres à utiliser pour le stockage, car elles sont définies dans une portée locale. L'utilisation de la fonction principale - qui est définie globalement - est plus dangereuse. Ici, vous pouvez utiliser le rappel du premiermap()
, qui vous ramène à 137 octets .Husk , 15 octets
Essayez-le en ligne!
Force brute, donc très lente.
Explication
la source
Perl 6 ,
7770 octetsEssayez-le en ligne!
Prendre l'approche de GB d'insérer un caractère jusqu'à ce que tous les caractères apparaissent le même nombre de fois. Reçoit une chaîne qui est modifiée sur place.
Si les traits de soulignement peuvent être traités comme des lettres, l'expression régulière peut devenir
/\w/
, économisant deux octets.Explication
la source
{*}
astuce..value(s)
ça? Bien, je devrai peut-être mettre à jour certaines de mes anciennes solutionsPython 2 ,
97117 octetsEssayez-le en ligne!
la source
C (clang) ,
246223220210208193 193188 octetsDrapeau du compilateur
-DF=;for(i=0;b[i];i++
-DB=b[i]
(29 octets)Ajout de la prise en charge des cas mixtes.
Essayez-le en ligne!
la source
Pyth,
3130 octetsEssayez-le ici
Explication
la source
C (GCC) - 175 octets
Non golfé
Essayez-le en ligne!
la source
Kotlin Android, 413 octets
Essayez en ligne
Explication étape 1 -> Sélectionnez la liste des caractères distincts. étape 2 -> Obtenez le nombre de chaque caractère dans la chaîne et sélectionnez la fréquence maximale de caractères. étape 3 -> obtenir la différence de fréquence des caractères par rapport à la fréquence maximale des caractères étape 4 -> placer les caractères par rapport aux positions dans la chaîne. Bonne résolution!
la source
C # (Visual C # Interactive Compiler) , 145 octets
Essayez-le en ligne!
la source
PHP ,
185173170 octetsEssayez-le en ligne!
Non golfé (et non ternarié et non optimisé).
la source