Jeśli liczba całkowita zawiera cyfrę / sekwencję cyfr, która powtarza się w sposób ciągły (zrozumiesz, dlaczego powiedziałem „nieprzerwanie”) 5 lub więcej razy, nazywamy to „Nudnym”.
Na przykład 11111
jest nudny, a 12345
nie jest.
Instrukcje
Weź jako liczbę całkowitą
Podaj prawdziwą wartość, jeśli liczba całkowita jest nudna, i wartość falsey, jeśli liczba całkowita nie jest nudna.
Przykład
11111
=> true
lub 1
(1 powtórzony 5 razy)
12345
=> false
lub0
1112111
=> false
lub0
4242424242
=> true
lub 1
(42 powtórzenia 5 razy)
-11111
=> true
lub1
3452514263534543543543543543876514264527473275
=> true
lub 1
(543 powtarza się 5 razy)
Jeśli używasz innych rodzajów „prawdy” i „fałszu”, podaj je.
Zasady
Obowiązują podstawowe zasady gry w golfa .
Powodzenia!
1112111
nudno4242424242
nudnoOdpowiedzi:
05AB1E , 8 bajtów
Kod:
Wyjaśnienie:
Prawda jest niezerowa, a fałsz zero. Wykorzystuje kodowanie CP-1252 .
Wypróbuj online!
źródło
Œ
z×
.Siatkówka , 9 bajtów
Zweryfikuj wszystkie przypadki testowe! (nieznacznie zmodyfikowany, aby uruchomić wszystkie przypadki testowe jednocześnie).
źródło
12345
(.+){5}
rozwija się do,(.+)(.+)(.+)(.+)(.+)
podczas gdy(.+)\1{4}
rozwija się do(.+)\1\1\1\1
.Java 8, 52 bajty
Obezwładnił tę odpowiedź Java 8 bezpośrednio
String#matches
.Wyjaśnienie:
Wypróbuj tutaj.
źródło
Java 8,
7366 bajtów:Brawo dla Java 8 lambdas! Zwraca,
true
jeśli znaleziono dopasowanie ifalse
inaczej.Wypróbuj online! (Ideone)
źródło
Lua, 35 bajtów
Cóż, nie widzę, jak lepiej sobie radzić z wzorami Lui! Pobiera argument wiersza polecenia jako dane wejściowe i wyjściowe
nil
dla przypadków fałszowania, a liczba jest powtarzana, gdy jest prawdziwa.źródło
JavaScript, 16 bajtów
W node.js (60 bajtów)
Marnowanie ton bajtów na wejściu / wyjściu.
JavaScript ES6 (33 bajty)
Ponownie marnowanie bajtów na wejściu / wyjściu.
Najlepiej jako funkcja anonimowa (22 bajty)
Lub nawet krótszy ( 16 bajtów )
Dzięki @BusinessCat za wskazanie moich błędów.
źródło
/(.+)\1{4}/.test(n)
zamiast tego, abymatch
zaoszczędzić kilka bajtów. Również nie wygląda na to, że tak naprawdę cokolwiek wyświetli.Uncaught TypeError: Method RegExp.prototype.test called on incompatible receiver undefined
. Nie jestem pewien, czy technicznie liczy się to jako poprawna odpowiedź, czy nie musi to być coś takiego/./.test.bind(/(.+)\1{4}/)
?Python 3.5,
4943 bajtów:( -6 bajtów dzięki wskazówkom Martina Endera ! )
Używa wyrażenia regularnego do dopasowania wszystkich powtarzających się sekwencji znaków, o ile powtarzają się one nieprzerwanie 5 lub więcej razy. Zwraca
re
obiekt dopasowania (np.<_sre.SRE_Match object; span=(0, 10), match='4242424242'>
), Jeśli dopasowanie zostanie znalezione jako wartość zgodna z prawdą i jako nic lubNone
jako wartość falsey.Wypróbuj online! (Ideone)
źródło
{4,}
przez{4}
?\1
robią po grupie wyrażeń regularnych?Perl,
1715 bajtów+
p
flaga.(biegnij z
perl -pe '$_=/(.+)\1{4}/'
)Dzięki Dom Hasting za
(.+)
zamiast(\d+)
.Wyjaśnienia w razie potrzeby:
(.+)
dopasują dowolną część liczby i\1{4}$
sprawdzą, czy jest powtarzana 4 razy pod rząd.źródło
$_=/(\d+)\1{4}/
zamiast tego, jak111112
to jest nudne, ale to nie złapie. Możesz nawet być w stanie użyć/./
zgodnie z odpowiedzią Retina.C # -
9338 bajtówBierze ciąg, zwraca liczbę całkowitą.
Dzięki aloisdg za oszczędność wielu bajtów!
źródło
@"(.+)\1{4}"
działałby również jako wyrażenie regularne? Czy przynajmniej w moim środowisku C #.s=>Syst...
s=>new Regex(@"(.+)\1{4}").IsMatch(s);
ponieważ pozostajemy w .NET (który jest naszym stdlib) i nigdy nie liczymy nausing System.Linq;
lubusing System.Collections.Generic
.Pyth ,
98 bajtów1 bajt dzięki Maltysen.
Prawda jest niepustą tablicą.
Wartość Falsey to
[]
(pusta tablica).Zestaw testowy.
źródło
m
zef
i wyjmując sumę.Mathematica,
464036 bajtówFunkcjonować. Bierze ciąg jako dane wejściowe i wyjściowe
True
lubFalse
. Testuje ciągi znaków względem wyrażeniaa__~~a__~~a__~~a__~~a__
, które reprezentuje tę samą sekwencję znaków powtórzoną 5 razy. Dla porównania, najkrótsze rozwiązanie z wyrażeniem regularnym ma długość 45 bajtów:przeklinam cię RegularExpression!
źródło
PHP,
3733 bajtówdzięki NoOneIsHere zapomniałem o tym
<?=
Program dla PHP <5,4, druki
1
dla nudny numery,0
innystosowanie:
register_globals=1
wphp.ini
PHP CGInastępnie zadzwonić
php-cgi <filename> n=<number>;echo""
$n
z$_GET[n]
rozwiązanie nieregexp,
152147140 bajtówwymienić
die(1)
zdie(print 1)
i dołączyćecho 0;
do drukowania zamiastshort_open_tags=1
jeśli wyłączone$n+1
ją naceil(strlen($n)/5)+1
lub przynajmniejstrlen($n)
na testowanie, lub może zapętlić się jak zawsze.źródło
<?=preg_match
... jest kilka znaków krótszyHaskell, 80 (63?)
Byłoby 63, gdyby nie było wyciągu z importu.
Stosowanie
Nawiasem mówiąc, kolejne mają dla mnie większy sens niż ciągłe.
(Przepraszam, nie mogę jeszcze komentować.)
źródło
MATLAB, 26 lub 13 bajtów
bierze to zmienną całkowitą „i”. Łańcuch to tylko ostatnia część:
Policzyłem nowy wiersz jako znak.
źródło
i=input('')
lub spraw, aby całość stała się funkcją (np.@(i)...
). BTW, nie sądzę, że byłoby zbyt rozciągnięcie, aby wziąć liczbę całkowitą jako ciąg znaków. PS Myślę, że to się nie powiedzie w przypadku ostatniego testu, a także proste211111
.TSQL, 151 bajtów
Gra w golfa:
Nie golfowany:
Skrzypce
źródło
PowerShell, 26 bajtów
W żadnym wypadku nie jestem mistrzem wyrażeń regularnych, więc dziękuję innym za to.
źródło
Clojure, 24 bajty
Używa falsey wartości clojure i
nil
/false
i prawdziwych wartości dla wszystkiego innego. W szczególności,nil
gdy nie zostanie znalezione dopasowanie dla fałszu, a tablica[]
dla wartości true, gdy zostanie znalezione dopasowanie, jak dla 11111, wówczas["11111" "1"]
jest prawdziwa.źródło
JS bez wyrażeń regularnych, 166
nie zminimalizowane:
źródło