Bei 2 Eingaben (m = minimale Start-ID , n = Anzahl der IDs ) wird eine fortlaufende Liste von IDs erstellt, die bei> = m beginnt und aus den Ziffern 0-9 besteht, wobei keine 2 aufeinander folgenden Zahlen gleich sind, z. B. 1232 ok, 1233 ist nicht (enthält 2 '3 nebeneinander).
Beispiel
für m = 985 zeigt n = 6, welche IDs generiert / übersprungen würden
...
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
...
Ausgabe
Jede ID sollte in einer neuen Zeile gedruckt werden, wie in der obigen Reihenfolge:
985
986
987
989
1010
1012
Regeln
Standard-Code-Golf-Regeln, die niedrigste Anzahl an Bytes gewinnt
code-golf
subsequence
beirtipol
quelle
quelle
Antworten:
Gelee , 6 Bytes
Probieren Sie es online!
Wie es funktioniert?
quelle
Brachylog ,
1110 BytesDie Eingabe ist eine Liste von zwei Zahlen. Probieren Sie es online!
Erläuterung
Das eingebaute Programm
ḅ
nimmt eine Liste oder einen String wie"1000220"
und teilt ihn in Blöcke von gleichen benachbarten Elementen wie auf["1","000","22","0"]
. In diesem Programm wende ich den~
Operator darauf an, sodass es umgekehrt funktioniert: Es nimmt eine Liste von Zeichenfolgen auf, überprüft, ob jede Zeichenfolge aus Wiederholungen eines einzelnen Zeichens besteht und benachbarte Zeichenfolgen unterschiedliche Zeichen haben, und verkettet die Liste. Das Prädikat≤
zählt die Zahlen beginnend mit der ersten Eingabe in aufsteigender Reihenfolge auf, und ich überprüfe eine Bedingung für sie, drucke diejenigen, die sie erfüllen, und stoppe, wenn ich genug gefunden habe.quelle
05AB1E , 9 Bytes
Probieren Sie es online!
Exlpanation
quelle
Java 8, 83 Bytes
Erläuterung:
Probieren Sie es online aus.
quelle
PowerShell , 59 Byte
Probieren Sie es online!
Grundsätzlich ähnlich den anderen Antworten. Solange wir noch Zahlen zum Ausdrucken haben (
for(;$n)
), wird geprüft, ob eine Regex-Übereinstimmung mit einer zweistelligen übereinstimmt. Wenn dies nicht der Fall ist, wird diese in die Pipeline übernommen und verringert$n
. Dann inkrementieren wir$m
und wiederholen die Schleife. Die Elemente werden aus der PipelineWrite-Output
abgerufen und das Implizite gibt uns kostenlos eine durch Zeilenumbrüche getrennte Ausgabe.quelle
R ,
1119271 BytesProbieren Sie es online!
Anwendungen
grepl
für wiederholte Ziffern zu suchen.quelle
Gelee , 9 Bytes
Probieren Sie es online!
Wenn nicht für die Ausgabeeinschränkung,
Y
kann entfernt werden.quelle
C 73 Bytes
Probieren Sie es online!
quelle
Perl 6 , 56 Bytes
Versuch es
Erweitert:
quelle
Retina , 34 Bytes
Probieren Sie es online! Nimmt
n
undm
als Eingabe in separaten Zeilen. Erläuterung:Schalten Sie die automatische Ausgabe aus und löschen Sie sie
n
aus dem Arbeitspuffer.Wiederhole das
n
mal.Geben Sie den Wert von
m
am Ende der folgenden geschleiften Gruppe aus.Schleife solange es zusammenhängende Ziffern gibt.
In Unary konvertieren.
Zählen Sie die Anzahl der leeren Zeichenfolgen, die um eins höher ist als die Anzahl der Zeichen. Addieren Sie also 1 und konvertieren Sie zurück in Dezimalzahlen. Dies beendet die innere Schleife.
Fügen Sie nach dem Drucken
m
auf die gleiche Weise erneut 1 hinzu. (Die letzte Zeile benötigt kein a,C`
da dies der Standard-Stufentyp für die letzte Zeile ist.) Die äußere Schleife wird implizit beendet.Beachten Sie, dass die Konvertierung nach Unary und zurück nach Decimal etwas langsam ist. für 39 Bytes eine Version, die keine Konvertierung vornimmt:
Probieren Sie es online! Erläuterung:
$.(
Berechnet die Länge des Restes der Ersetzung, ohne sie tatsächlich zu erweitern. Da die Länge von*_
implizit dem übereinstimmenden Wert entspricht und die Länge_
von natürlich 1 ist, wird der Wert nur erhöht.quelle
Perl 5.10.0 +
-n
,4039 BytesProbieren Sie es online!
-1 Byte dank Xcali
Eingabe in zwei Zeilen, zuerst n, dann m. Stellen Sie sicher, dass nach m KEINE neue Zeile steht:
quelle
Perl 5 ,
-ln
33 BytesGeben Sie bei STDIN 2 Zeilen ein, beginnen Sie zuerst mit id und zählen Sie dann
Probieren Sie es online!
quelle
$n.=<>
funktioniert, vor allem mit dem-=
...$n
es0
so sein kann, dass beide zusammen falsch sindPython 2 ,
8073 Bytes-7 Bytes dank Mr. Xcoder
Probieren Sie es online!
quelle
Haskell , 70 Bytes
-19 bytes dank nimi.
Probieren Sie es online!
17 Bytes zum Trennen von Zeilenumbrüchen.
quelle
mapM
und verwendenprint
. Probieren Sie es online!Stax ,
98 Bytes CP437Probieren Sie es online!
Passiert zufällig mit @ Mr.Xcoders Algorithmus in seiner Gelee-Antwort.
-1 Byte pro Kommentar von @recursive.
Erläuterung
Verwendet das entpackte Format zur Erklärung.
quelle
Haskell ,
949391 Bytes-1 Byte dank Laikoni
-2 Byte dank Zgarb
Probieren Sie es online!
Erster Haskell Golf.
quelle
group(show a)
kann seingroup$show a
.(<2).length
kann seinnull.tail
Pyth , 12 Bytes
Probieren Sie es hier aus
quelle
JavaScript (ES6), 50 Byte
Übernimmt Eingaben in der Currying-Syntax
(m)(n)
.Probieren Sie es online!
quelle
C # (.NET Core), 91 Byte
Port von @Steadybox 'C antworten.
Probieren Sie es online aus.
quelle
Perl 5 (
-nl
), 42 BytesProbieren Sie es online!
quelle
AWK , 90 Bytes
Probieren Sie es online!
Das ist viel hässlicher als ich dachte. Ich entdeckte, dass
AWK
nur eine Rücksubstitution in dergensub
Funktion vorhanden ist, wodurch die Verwendung für diese Anwendung nicht sehr effizient wäre.Dies ist also eine sehr einfache Methode, um einen ID-Zähler zu erhöhen, den Zähler auf jedes Zeichen aufzuteilen und die Zeichen zu durchlaufen, um festzustellen, ob ein Zeichen mit dem vorherigen Zeichen identisch ist. Wenn keine wiederholten Zeichen gefunden werden, drucken Sie den ID-Zähler und erhöhen Sie die Anzahl der gedruckten IDs.
Ich werde versuchen, keine Aussage im Sinne von "
AWK
sollte die Fähigkeit haben, stabilere reguläre Ausdrücke zu machen" zu machen, aber es wird schwierig sein.quelle
Bash + GNU-Dienstprogramme, 35
Probieren Sie es online aus .
quelle
Ruby , 47 Bytes
Probieren Sie es online!
Wenn Ihnen die Anführungszeichen nicht gefallen, sind es 50 Byte
Probieren Sie es online!
quelle
Pip , 22 Bytes
Probieren Sie es online!
Erläuterung
quelle