Étant donné 2 entrées (m = id de départ minimum , n = nombre d' id ), générer une liste séquentielle d'id, commençant à> = m, composée des chiffres 0-9 où aucun 2 nombres contigus ne sont identiques, par exemple 1232 est ok, 1233 ne l'est pas (contient 2 '3 côte à côte).
Exemple
pour m = 985, n = 6, ci-dessous montre quels ids seraient générés / ignorés
...
985 - ok, 1st
986 - ok, 2nd
987 - ok, 3rd
# skip 0988 (contains '88')
989 - ok, 4th
# Skip 099x (contains '99')
# Skip 100x (contains '00')
1010 - ok, 5th
# Skip 1011 (contains '11')
1012 - ok, 6th
...
Production
Chaque ID doit être imprimé sur une nouvelle ligne, comme pour la séquence ci-dessus:
985
986
987
989
1010
1012
Règles
Règles de code-golf standard, le nombre d'octets le plus bas gagne
code-golf
subsequence
beirtipol
la source
la source
Réponses:
Gelée , 6 octets
Essayez-le en ligne!
Comment ça fonctionne?
la source
Brachylog ,
1110 octetsL'entrée est une liste de deux nombres. Essayez-le en ligne!
Explication
La fonction intégrée
ḅ
prend une liste ou une chaîne, comme"1000220"
, et la divise en blocs d'éléments adjacents égaux, comme["1","000","22","0"]
. Dans ce programme, j'y applique l'~
opérateur, donc cela fonctionne à l'envers: il prend une liste de chaînes, vérifie que chaque chaîne se compose de répétitions d'un seul caractère et les chaînes voisines ont des caractères différents, et concatène la liste. Le prédicat≤
énumère les nombres à partir de la première entrée dans l'ordre croissant, et je vérifie une condition sur eux, imprimant ceux qui le satisfont et s'arrêtant quand j'en ai trouvé assez.la source
05AB1E , 9 octets
Essayez-le en ligne!
Exlpanation
la source
Java 8, 83 octets
Explication:
Essayez-le en ligne.
la source
PowerShell , 59 octets
Essayez-le en ligne!
Fondamentalement similaire aux autres réponses. Boucles tant qu'il nous reste des nombres à imprimer (
for(;$n)
), teste si nous avons une correspondance régulière avec un chiffre à deux chiffres et sinon il met cela sur le pipeline et diminue$n
. Ensuite, nous incrémentons$m
et bouclons à nouveau. Les éléments sont récupérés dans le pipeline et l'impliciteWrite-Output
nous donne gratuitement une sortie séparée par des sauts de ligne.la source
R ,
1119271 octetsEssayez-le en ligne!
Permet
grepl
de rechercher des chiffres répétés.la source
Gelée , 9 octets
Essayez-le en ligne!
Sinon pour la restriction de sortie,
Y
peut être supprimé.la source
C, 73 octets
Essayez-le en ligne!
la source
Perl 6 , 56 octets
Essayez-le
Étendu:
la source
Rétine , 34 octets
Essayez-le en ligne! Prend
n
etm
comme entrée sur des lignes distinctes. Explication:Désactivez la sortie automatique et supprimez-la
n
du tampon de travail.Répétez
n
fois.Affiche la valeur de
m
à la fin du groupe en boucle suivant.Boucle alors qu'il y a des chiffres contigus.
Convertissez en unaire.
Comptez le nombre de chaînes vides, qui est un de plus que le nombre de caractères, ajoutant ainsi 1 et reconvertissant en décimal. Cela termine la boucle intérieure.
Après avoir imprimé
m
, ajoutez à nouveau 1 de la même manière. (La dernière ligne n'a pas besoin d'unC`
car c'est le type d'étape par défaut pour la dernière ligne.) La boucle externe est implicitement terminée.Notez que la conversion en unaire et en décimale est un peu lente; pour 39 octets, une version qui ne fait aucune conversion:
Essayez-le en ligne! Explication:
$.(
calcule la longueur du reste de la substitution, sans pour autant l'étendre réellement; puisque la longueur de*_
est implicitement la valeur appariée et la longueur de_
est bien sûr 1, cela incrémente simplement la valeur.la source
Perl 5.10.0 +
-n
,4039 octetsEssayez-le en ligne!
-1 octet grâce à Xcali
Entrée sur deux lignes, d'abord n, puis m. Assurez-vous qu'il n'y a PAS de nouvelle ligne après m:
la source
Perl 5 ,
-ln
33 octetsEntrez 2 lignes sur STDIN, commencez par id puis comptez
Essayez-le en ligne!
la source
$n.=<>
fonctionnait comme ça, surtout avec le-=
...$n
il est peut-être0
Python 2 ,
8073 octets-7 octets grâce à M. Xcoder
Essayez-le en ligne!
la source
Haskell , 70 octets
-19 octets grâce à nimi.
Essayez-le en ligne!
17 octets dédiés à la séparation par des sauts de ligne.
la source
mapM
etprint
. Essayez-le en ligne!Stax ,
98 octets CP437Essayez-le en ligne!
Arrive à coïncider avec l'algorithme de @ Mr.Xcoder dans sa réponse Jelly.
-1 octet par commentaire de @recursive.
Explication
Utilise le format décompressé pour expliquer.
la source
Haskell ,
949391 octets-1 octet grâce à Laikoni
-2 octets grâce à Zgarb
Essayez-le en ligne!
Premier golf Haskell.
la source
group(show a)
peut êtregroup$show a
.(<2).length
peut êtrenull.tail
Pyth , 12 octets
Essayez-le ici
la source
JavaScript (ES6), 50 octets
Prend une entrée dans la syntaxe de curry
(m)(n)
.Essayez-le en ligne!
la source
C # (.NET Core), 91 octets
Port de la réponse @Steadybox 'C.
Essayez-le en ligne.
la source
Perl 5 (
-nl
), 42 octetsEssayez-le en ligne!
la source
AWK , 90 octets
Essayez-le en ligne!
C'est beaucoup plus laid que je ne le pensais. J'ai découvert qu'il
AWK
n'y a que la substitution arrière dans songensub
fonction de ce qui la rendrait peu efficace à utiliser pour cette application.Il s'agit donc d'une approche très simple consistant à incrémenter un compteur ID, à diviser le compteur à chaque caractère, à parcourir les caractères pour voir si un caractère est le même que le caractère précédent. Si aucun caractère répété n'est trouvé, imprimez le compteur d'ID et augmentez le nombre d'ID imprimés.
Je vais essayer de m'abstenir de faire une déclaration dans le sens de "
AWK
devrait avoir la capacité de faire des expressions régulières plus robustes", mais ce sera difficile.la source
Utilitaires Bash + GNU, 35
Essayez-le en ligne .
la source
Rubis , 47 octets
Essayez-le en ligne!
Si vous n'aimez pas les guillemets, c'est 50 octets
Essayez-le en ligne!
la source
Pip , 22 octets
Essayez-le en ligne!
Explication
la source