J'ai une liste de chiffres décimaux:
4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4
La liste des chiffres décimaux est connue sous le nom d'éléments. Nous pouvons former des "morceaux" à partir de ces éléments en regroupant des nombres identiques et adjacents. Je veux attribuer à chaque bloc un numéro unique, en commençant par 1 et en augmentant de 1 dans l'ordre dans lequel les blocs apparaissent dans la liste d'origine. Ainsi, la sortie de l'exemple donné ressemblerait à ceci:
1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5
Format d'entrée
Une liste de chiffres. (0-9) Vous pouvez utiliser votre langage intégré pour lire cette liste comme vous le souhaitez. Encodage: ASCII
Format de sortie
Une série de nombres décimaux, séparés par un délimiteur. Votre programme doit toujours utiliser le même délimiteur. Le délimiteur doit être supérieur à 0 bits. Encodage: ASCII
Des échappatoires standard s'appliquent.
la source
You may use your language built-ins to read this list however you want.
. Cela signifie-t-il que nous devons inclure une chaîne pour convertir le convertisseur dans notre soumission? Et sommes- nous autorisés à produire une liste?Réponses:
Python 3.8 (pré-version) , 41 octets
Essayez-le en ligne!
Louez le morse magique
:=
des expressions d'affectation.Python 2 , 42 octets
Essayez-le en ligne!
la source
id
parce que c'est 2 octets de long ...id
Python 2 , 44 octets
Essayez-le en ligne!
la source
APL (dzaima / APL) , 7 octets SBCS
Fonction de préfixe tacite anonyme. Imprime en séparant l'espace.
Essayez-le en ligne!
2≠/
inégalité par paire1,
ajouter 1+\
somme cumuléela source
Gelée ,
65 octetsEssayez-le en ligne!
Un octet enregistré grâce à UnrelatedString !
Entrées et sorties sous forme de tableau (avec crochets d'ouverture / fermeture)
Comment ça fonctionne
la source
Wolfram Language (Mathematica) , 29 octets
Essayez-le en ligne!
la source
05AB1E , 5 octets
Essayez-le en ligne!
la source
¥Ā
pourrait également l'êtreüÊ
.Haskell , 40 octets
Essayez-le en ligne!
la source
Perl 6 , 21 octets
Essayez-le en ligne!
Bloc de code anonyme qui prend une liste et renvoie une liste. Cela fonctionne en comparant si chaque paire d'éléments adjacents n'est pas égale, en prenant la somme cumulée de la liste.
la source
05AB1E , 4 octets
Essayez-le en ligne!
la source
ƶ
... +1ηεγg
R , 33 octets
Essayez-le en ligne!
Utilise la même méthode de somme cumulée que Luis Mendo et autres.
la source
MATL , 8 octets
Essayez-le en ligne!
Explication:
la source
Gelée , 4 octets
Essayez-le en ligne!
Comment?
la source
Octave / MATLAB, 25 octets
Essayez-le en ligne!
la source
Haskell ,
4643 octetsEssayez-le en ligne!
Fonction anonyme sans point qui prend une liste et retourne une liste
la source
J , 12 octets
Essayez-le en ligne!
Similaire à la réponse APL d' Adám
la source
Perl 5 , 27 octets
Essayez-le en ligne!
L'option de ligne de commande
-p
fait perl lire la ligne d'entrée de STDIN dans la "variable par défaut"$_
. Il remplace ensuite tous les chiffres$_
par le compteur$i
. Et$i
est augmenté pour chaque chiffre qui est différent du chiffre précédent, qui se trouve également au premier chiffre, de sorte que le compteur démarre à1
. Le chiffre précédent est enregistré dans$p
.la source
Pyth ,
1311 octetsEssayez-le en ligne!
-2 octets grâce à M. Xcoder
la source
hMsM._+0nVt
pour -2 octets.rQ8
c'est la même choser8
et.n
peut être aussis
pour -2Q
Scala , 75 octets
Essayez-le en ligne!
Si l'entrée et la sortie doivent être des chaînes séparées par des virgules (et non des listes), alors 102 octets.
la source
Gelée , 5 octets
Essayez-le en ligne!
Au départ, je visais un 4 octets (le même programme mais sans le
Ż
) mais j'ai rapidement réalisé qu'un 1 devait être ajouté à chaque fois en raison d'un oubli ... Même s'il y a un autre 5 octets dans Jelly, je vais en fait garder cela car il utilise une méthode différente.la source
JavaScript (ES6), 30 octets
Prend l'entrée comme un tableau d'entiers.
Essayez-le en ligne!
Commenté
la source
PHP , 52 octets
Essayez-le en ligne!
Entrée via ligne de commande, sortie vers
STDOUT
.Thx à @ Night2 pour le
'0' == 0
bugfix de comparaison embêtant !la source
Julia 1.0 , 56 octets
Essayez-le en ligne!
la source
Japt v2.0a0, 9 octets
Essayez-le
la source
Ajouter ++ , 23 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Japt ,
87 octetsEssayez-le
la source
Retina 0.8.2 , 34 octets
Essayez-le en ligne! Explication:
Faites correspondre chaque numéro tour à tour.
Commencez à regarder en arrière pour autant de matchs que possible. (Les prochaines entrées seront dans l'ordre de droite à gauche car c'est ainsi que fonctionne lookbehind.)
Sautez les séparateurs.
Essayez de faire correspondre le même numéro que la dernière fois, mais à défaut, faites simplement correspondre n'importe quel numéro, mais rappelez-vous que nous devions faire correspondre un nouveau numéro.
Assurez-vous que le nombre entier correspond.
Comptez le nombre de nouveaux numéros.
la source
Stax , 10 octets
Exécuter et déboguer
La sortie utilise l'espace comme délimiteur. L'entrée suit les spécifications précises en utilisant des virgules comme séparateurs, et maintenant des accolades.
la source
C (gcc) ,
6261 octetsC'est l'une des rares entrées que j'ai faites où un programme complet est plus court qu'une soumission de fonction!
Lors de la première passe, je ne me soucie pas de la valeur précédente, donc je peux compter sur le fait qu'il
argv
s'agit d'un pointeur vers quelque part et qu'il est extrêmement peu probable qu'il se situe entre [0..9]!Essayez-le en ligne!
la source
Scala , 114 octets
Essayez-le en ligne!
la source
C (gcc) , 62 octets
Essayez-le en ligne!
Une fonction qui prend la liste et sa longueur comme arguments.
C (gcc) , 60 octets
Essayez-le en ligne!
Sorties en unaire, délimitées par0
sla source