Wenn eine Ganzzahl eine Ziffer / Ziffernfolge enthält, die sich 5 oder mehr Mal wiederholt (Sie werden verstehen, warum ich "kontinuierlich" gesagt habe), nennen wir sie "langweilig".
Zum Beispiel 11111
ist langweilig, während 12345
es nicht ist.
Anleitung
Nehmen Sie eine Ganzzahl als Eingabe
Geben Sie einen Wahrheitswert aus, wenn die Ganzzahl langweilig ist, und einen Falsey-Wert, wenn die Ganzzahl nicht langweilig ist.
Beispiel
11111
=> true
oder 1
(1 5-mal wiederholt)
12345
=> false
oder0
1112111
=> false
oder0
4242424242
=> true
oder 1
(42 Wiederholungen 5 Mal)
-11111
=> true
oder1
3452514263534543543543543543876514264527473275
=> true
oder 1
(543 Wiederholungen 5 Mal)
Wenn Sie andere Arten von "truth" und "false" verwenden, geben Sie diese an.
Regeln
Grundlegende Code-Golf- Regeln gelten.
Viel Glück!
1112111
langweilig4242424242
langweiligAntworten:
05AB1E , 8 Bytes
Code:
Erläuterung:
Die Wahrheit ist nicht Null und falsch ist Null. Verwendet die CP-1252- Codierung.
Probieren Sie es online!
quelle
Œ
mit kombiniert×
.Netzhaut , 9 Bytes
Überprüfen Sie alle Testfälle! (Leicht modifiziert, um alle Testfälle gleichzeitig auszuführen.)
quelle
12345
(.+){5}
erweitert sich zu,(.+)(.+)(.+)(.+)(.+)
während(.+)\1{4}
sich zu erweitert(.+)\1\1\1\1
.Java 8, 52 Bytes
Überrumpelte diese Java 8 Antwort mit einem direkten
String#matches
.Erläuterung:
Probieren Sie es hier aus.
quelle
Java 8,
7366 Bytes:Hurra für Java 8 Lambdas! Gibt zurück,
true
ob eine Übereinstimmung gefunden wurde oderfalse
nicht.Probieren Sie es online! (Ideone)
quelle
Lua, 35 Bytes
Nun, ich kann nicht besser mit Luas Mustern umgehen! Übernimmt ein Befehlszeilenargument als Eingabe und Ausgabe
nil
für falsche Fälle, und die Zahl wird wiederholt, wenn sie wahr ist.quelle
JavaScript, 16 Bytes
In node.js (60 Bytes)
Eine Tonne Bytes bei der Eingabe / Ausgabe verschwenden .
JavaScript ES6 (33 Byte)
Verschwendung von Bytes bei der Eingabe / Ausgabe.
Vorzugsweise als anonyme Funktion (22 Bytes)
Oder noch kürzer ( 16 Bytes )
Vielen Dank an @BusinessCat für den Hinweis auf meine Fehler.
quelle
/(.+)\1{4}/.test(n)
stattdessen verwenden,match
was ein paar Bytes spart. Es sieht auch nicht so aus, als würde dies tatsächlich etwas ausgeben.Uncaught TypeError: Method RegExp.prototype.test called on incompatible receiver undefined
. Ich bin mir nicht sicher, ob das technisch gesehen die richtige Antwort ist. Müsste es nicht so sein/./.test.bind(/(.+)\1{4}/)
?Python 3.5,
4943 Bytes:( -6 Bytes dank Tipps von Martin Ender ! )
Verwendet einen regulären Ausdruck, um alle sich wiederholenden Zeichenfolgen abzugleichen, solange sie sich mindestens fünf Mal hintereinander wiederholen. Gibt ein
re
Übereinstimmungsobjekt (z. B.<_sre.SRE_Match object; span=(0, 10), match='4242424242'>
) zurück, wenn eine Übereinstimmung als wahrer Wert und nichts oderNone
als falscher Wert gefunden wird.Probieren Sie es online! (Ideone)
quelle
{4,}
durch{4}
?\1
nach der Regex-Gruppe zu tun?Perl,
17-15Bytes+ die
p
Flagge.(renn mit
perl -pe '$_=/(.+)\1{4}/'
)Danke an Dom Hasting für den
(.+)
Ersatz(\d+)
.Erläuterungen, falls erforderlich:
(.+)
Stimmt mit einem beliebigen Teil der Nummer überein und\1{4}$
sucht, ob diese viermal hintereinander wiederholt wird.quelle
$_=/(\d+)\1{4}/
stattdessen brauchen, wie111112
es langweilig ist, aber das wird es nicht fangen. Möglicherweise können Sie sogar/./
die Retina-Antwort verwenden.C # -
9338 BytesNimmt einen String und gibt eine Ganzzahl zurück.
Vielen Dank an aloisdg für das Speichern vieler Bytes!
quelle
@"(.+)\1{4}"
als Regex funktionieren? Funktioniert zumindest in meiner C # -Umgebung.s=>Syst...
s=>new Regex(@"(.+)\1{4}").IsMatch(s);
weil wir in .NET bleiben (was seine unsere Stdlib ist) und wir nie zählenusing System.Linq;
oder zählenusing System.Collections.Generic
.Pyth ,
98 Bytes1 Byte danke an Maltysen.
Der Wahrheitswert ist ein nicht leeres Array.
Falscher Wert ist
[]
(leeres Array).Testsuite.
quelle
m
mitf
und Herausnehmen der Summe.Mathematica,
464036 BytesFunktion. Nimmt einen String als Ein- und Ausgang
True
oderFalse
. Testet Strings gegen den Ausdrucka__~~a__~~a__~~a__~~a__
, der dieselbe Zeichenfolge darstellt, die fünfmal wiederholt wird. Als Referenz ist die kürzeste Lösung mit einem regulären Ausdruck 45 Byte lang:verfluche dich RegularExpression!
quelle
PHP,
3733 Bytesdank NoOneIsHere habe ich vergessen
<?=
Programm für PHP <5.4, druckt
1
für langweilige Zahlen,0
sonstVerwendung:
register_globals=1
inphp.ini
PHP-cgidann rufen
php-cgi <filename> n=<number>;echo""
$n
mit$_GET[n]
Nicht-Regexp-Lösung,
152147140 Bytesersetzen Sie diese
die(1)
durchdie(print 1)
und hängen Sie sie anecho 0;
stattdessen den Ausdruck hinzushort_open_tags=1
wenn deaktiviert$n+1
mitceil(strlen($n)/5)+1
oder zumindest mitstrlen($n)
zum Testen oder sie kann wie für immer schleifen.quelle
<?=preg_match
... ist ein paar Zeichen kürzerHaskell, 80 (63?)
Es wäre 63, wenn es keine Importanweisung gäbe.
Verwendung
Aufeinanderfolgend macht für mich übrigens mehr Sinn als ununterbrochen.
(Leider kann ich noch keinen Kommentar abgeben.)
quelle
MATLAB, 26 oder 13 Bytes
Dies erfordert eine ganzzahlige Variable 'i'. Eine Zeichenfolge ist nur der letzte Teil:
Ich habe die Newline als Zeichen gezählt.
quelle
i=input('')
oder mach das ganze zu einer funktion (zb.@(i)...
). Übrigens denke ich nicht, dass es zu viel Dehnung wäre, die ganze Zahl bereits als Zeichenfolge zu verwenden. PS Ich denke es scheitert im letzten Testfall und auch einfach211111
.TSQL, 151 Bytes
Golf gespielt:
Ungolfed:
Geige
quelle
PowerShell, 26 Byte
Ich bin auf keinen Fall ein Regex-Meister, also loben Sie die anderen Antworten dafür.
quelle
Clojure, 24 Bytes
Verwendet die falschen Werte von
nil
/false
und die wahren Werte von clojure für alles andere. Insbesonderenil
wenn keine Übereinstimmung für false gefunden wird und ein Array[]
für true, wenn eine Übereinstimmung wie für 11111 gefunden wird, dann["11111" "1"]
ist true.quelle
JS ohne reguläre Ausdrücke, 166
nicht minimiert:
quelle