Défi:
Étant donné une chaîne s
sur les caractères a
- z
, A
- Z
, 0
- 9
, ajoutez la longueur de s
à lui-même, en comptant le ou les caractères supplémentaires de la longueur dans la longueur totale de s
.
Contribution:
Juste une chaîne de longueur arbitraire (peut être vide).
Sortie:
La même chaîne, mais avec sa longueur ajoutée à la fin. Les caractères qui représentent la longueur doivent également être comptés comme faisant partie de la longueur. Dans les cas où il y a plusieurs longueurs valides à ajouter, choisissez la plus petite possible (voir des exemples de tests).
Cas de test:
INPUT -> OUTPUT // Comment
aaa -> aaa4
-> 1 // Empty string
aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above
aaaaaaaaa -> aaaaaaaaa11
a1 -> a13 // Input can contain numbers at the end of the string, you do not have to handle the fact that it looks like 13 rather than 3.
Longer test case(s):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa101
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa102
Règles:
C'est du code-golf , donc le code le plus court en octets gagne. Les échappatoires standard sont interdites. Les soumissions peuvent être un programme entier ou une fonction, et vous pouvez imprimer le résultat sur stdout ou le renvoyer sous forme de variable à partir d’une fonction.
la source
Réponses:
Pyth - 7 octets
Essayez-le en ligne ici .
la source
JavaScript (ES6), 32 octets
Comment ça fonctionne
En commençant par
N=0
, nous testons le Nième caractère (base 0) de la chaîne constituée de la concaténation de la chaîne d'entrée d'origine et de la représentation décimale deN
. Nous incrémentonsN
jusqu'à ce que ce personnage n'existe plus.Exemple:
Cas de test
Afficher l'extrait de code
la source
LaTeX, 108/171
\q[] //1
la source
JavaScript (ES6), 37 octets
la source
Run Code Snippet
je vois un message d'erreur. Je n'ai aucune connaissance en Javascript - je voulais juste essayerVersion 48.0.2564.97
). Je vais essayer cela aussi avec IE. Impossible de mettre à jour mes problèmes de sécurité liés à Chrome - OfficeC,
676561 octetsBoîte à baguette
la source
Lua 5.2, 32 octets
Où la variable a est la chaîne d'entrée.
la source
Pyke, 8 octets ( ancienne version )
Explication:
Essayez-le ici! (Nouvelle version, 9 octets)
la source
Python 2,
544846 octetsSolution simple. La récursion a fini par être plus courte.
Essayez-le en ligne
la source
(s+`n`)[n:]
pourn<len(s+`n`)
.Haskell, 46 octets
Exemple d'utilisation:
f "aaaaaaaa"
->"aaaaaaaa9"
.Essayez simplement tous les nombres commençant par 0 et prenez le premier qui vous convient.
la source
Mathematica, 57 octets
Fonction sans nom prenant un tableau de caractères en entrée et renvoyant une chaîne. Utilise le fait que si
a
est la longueur de l'entrée, le nombre à ajouter à l'entrée esta
ainsi que le nombre de chiffres dans (a
+ la longueur dea
), plutôt que simplementa
le nombre de chiffres dea
. Malheureusement, cela ne donnerait pas la bonne réponse pour l'entrée chaîne vide sans le~Max~1
cas particulier.la source
Brachylog , 13 octets
Essayez-le en ligne!
Explication
Fondamentalement, une description du problème. Il essaiera toute valeur
L
supérieure à la longueur de l'entrée jusqu'à ce qu'il en trouve une pour laquelle, lorsqu'elle est concaténée à l'entrée, correspond à la longueur de cette concaténation.la source
Brainfuck, 258 octets
L'entrée doit être terminée par un saut de ligne (LF). Ne fonctionne que pour les entrées de longueur inférieure à 256 (y compris le BF).
Essayez-le en ligne!
Explication
Remarque: j'ai utilisé le code de cette réponse SO pour convertir la longueur en sortie ascii; J'espère que cela est acceptable sur PPCG. Ceci est ma première soumission Codegolf et mon deuxième programme BF. Les commentaires sont les bienvenus.
la source
Rétine , 22 octets
Essayez-le en ligne!
Eh bien, s'il n'y avait pas de chiffres dans l'entrée, cela ne serait que 11 octets:
la source
Ruby,
625856 octetsTesté dans
irb
.Il existe probablement une meilleure façon de procéder, mais c’est la première chose que j’ai trouvée. Toute aide au golf serait appréciée.
edit: J'ai réalisé que mon utilisation des parenthèses était excessive.
la source
l
dans un endroit. Si vous y insérez, vous économiserez 3 octetsl=;
. Mais votre solution sera toujours plus longue que la mienne;)Perl 6 ,
4635 octetsL'essayer
Étendu:
la source
05AB1E , 11 octets
Bruteforce assez simple:
Essayez-le en ligne!
la source
Python, 39 octets
Forme plus longue:
Itérativement en Python 2 (41 octets):
En commençant par
x
la chaîne d'entréea
, applique la transformationx -> a + str(len(x))
trois fois. Je ne comprends toujours pas pourquoi trois applications sont nécessaires pour toujours atteindre le point fixe.la source
PHP, 42 octets
Courez avec
-r
. Testez à OnlinePHPfunctions .la source
bash, 47 octets
Enregistrez ceci en tant que script et transmettez la chaîne d'entrée en tant qu'argument.
C'est une implémentation en force brute: essayez chaque chiffre à tour de rôle jusqu'à trouver celui qui fonctionne.
la source
> <> (Poisson) 35 octets
Prend une entrée sur la pile, vérifie la longueur par rapport aux valeurs de 9,99 999 ... et si la longueur est supérieure à 1, ajoutez 1 à la longueur de la pile.
la source
Haskell ,
6160 octetsEssayez-le en ligne!
Solution récursive Usage:
la source
C #, 77 octets
la source
return(n+(a+1+c))
commea=n.Length
?-1
deint c=(a+1).ToString().Length-1
et le+1
du retour?aa...a100
au lieu deaa...a101
pour lea
cas de test 99 .MATL , 11 octets
Essayez-le en ligne! Ou vérifiez tous les cas de test .
la source
Ruby, 51 octets (programme)
Ruby, 49 octets (fonction)
Programme (la dernière nouvelle ligne n’est pas nécessaire et n’est donc pas notée):
Fonction (le dernier saut de ligne est marqué):
la source
Facteur, 55 octets
C'est une promenade dans le parc! J'ai pensé à cela dès que j'ai lu la question.
la source
Clojure, 72 octets
la source
R, 49 octets
Solution assez simple.
la source
Read 1 item Error in nchar(x + 1) : object 'x' not found
. J'ai trouvé que ça(t<-nchar(a))+...
fonctionnait.Wolfram, 56 ans
Étant donné
l = StringLength[x]
qu'il ajoutel + IntegerLength[l + IntegerLength[l]]
àx
.la source
Labyrinthe ,
484541 octetsEssayez-le en ligne!
4 octets sauvés remerciés à @Martin Ender
la source
ForceLang, 83 octets
la source