Les caractères alphanumériques ont des valeurs ASCII:
0-9 -> 48-57
A-Z -> 65-90
a-z -> 97-122
Votre défi consiste à prendre un entier en entrée et à afficher le nombre de caractères pouvant être créés à l'aide de chiffres consécutifs de ce nombre. Les codes de caractères peuvent se chevaucher. 666
devrait se traduire par 2
, puisque vous avez 66
deux fois.
Cas de test:
Input: 5698
Possible characters: '8' (56), 'E' (69), 'b' (98)
Output: 3
Input: 564693
Possible characters: '8' (56), 'E' (69)
Output: 2
Input: 530923864209124521
Possible characters: '5' (53), 'V' (86), '4' (52)
Output: 3
Input: 1111111
Possible characters: 'ooooo' (5*111)
Output: 5
Input: 5115643141276343
Possible characters: '3' (51), '8' (56), 'L' (76), 's' (115)
Output: 4
Input: 56789
Possible characters: '8' (56), 'C' (67), 'N' (78), 'Y' (89)
Output: 4
Input: 94
Possible characters: ''
Output: 0
Input: 1
Output: 0
Les formats d'entrée et de sortie sont facultatifs (oui, vous pouvez prendre l'entier comme une chaîne).
ŒžKÇÃg
ne fonctionne pas?1111111
test.Ã
, cela fait beaucoup plus de sens maintenant que j'ai lu ce qu'il fait, merde.Brachylog , 22 octets
Essayez-le en ligne!
Explication
la source
T
ensemble?MATL ,
1713 octetsEssayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
Java 7,
204197195 octetsExplication:
Code de test:
Essayez-le ici.
la source
r
). Cependant, j'ai pu jouer au golf 7 octets en mettant tout le reste à l'intérieur de la boucle for, dans un seul ternaire. Je verrai si je peux faire votre deuxième suggestion plus tard peut-être. Mon déjeuner est de nouveau terminé, je vais donc devoir retourner au travail. Gardera cela à l'esprit.JavaScript (ES6),
7170 octetsCas de test
Afficher l'extrait de code
la source
Perl 5 , 47 octets
46 octets de code +
-p
indicateur.Essayez-le en ligne!
Je n'ai pas trouvé de moyen plus court pour écrire cela
48..57,65..90,97..122
:map{ord}0..9,a..z,A..Z
(obtenir la valeur ascii des caractères) est un octet de plus. Et fairefor$c(0..122){$\+=chr($c)=~/\pl|\d/ for/(?=$c)/g}}{
(en recherchant tous les nombres, mais en ne gardant que ceux dont les nombres correspondent à la valeur ascii des lettres (\pl
) ou des chiffres (\d
)) sera 5 octets de plus (notez que\pl|\d
cela ne peut pas être remplacé\w
car ce dernier inclut également des traits de soulignement)) .Approche précédente (49 octets):
la source
PHP, 68 octets
Version en ligne
la source
JavaScript (ES)
165161156154153 octetsOuais, RegEx n'était certainement pas le bon outil pour le travail ici!
Essayez-le
la source
Rétine , 52 octets
Essayez-le en ligne! (comprend la suite de tests)
la source
Python 2 ,
746462 octetsEssayez-le en ligne!
la source
Haskell,
161157138129126 octetsJe me demande s'il existe un meilleur moyen de supprimer les dupes de la liste que d'importer Data.List pour nub?
la source
Data.Lists
lieu deData.List
, vous pouvez utiliser:y<-tail$powerslice x
.Data.Lists
. Il est même mentionné dans les conseils de golf pour Haskell - personne ne s'est plaint jusqu'à présent.or $ f <$> list
estany f list
:any(elem$read y)[...]
.Pyth,
191714 octetsprend une chaîne.
-3 octets grâce à @LeakyNun
Essayez!
Explication
la source
idT
, vous pouvez utilisersd
.l@jGUTmr0Csd.:
peut être plus court (je ne sais pas si cela fonctionne).Gelée , 8 octets
L'entrée est un tableau de chiffres.
Essayez-le en ligne!
Comment ça marche
la source
Rubis, 50 octets
Lit à partir de l'entrée standard; nécessite que l'interpréteur Ruby soit invoqué avec l'
-n
option (while gets
boucle implicite ).Peut être réduit à 43 octets s'il était autorisé à faire correspondre les traits de soulignement.
la source
111
, ce qui devrait revenir,1
mais vous redonnez0
.Japt , 24 octets
Essayez-le en ligne!
Version alternative de 27 octets:
Essayez-le en ligne!
la source