Si un entier contient un chiffre / une séquence de chiffres qui se répète en continu (vous comprendrez pourquoi j'ai dit "en continu") 5 fois ou plus, nous l'appelons "ennuyeux".
Par exemple, 11111
est ennuyeux, alors qu'il 12345
ne l'est pas.
Instructions
Prendre un entier comme entrée
Sortez une valeur véridique si l'entier est ennuyeux et une valeur de falsey si l'entier n'est pas ennuyeux.
Exemple
11111
=> true
ou 1
(1 se répète 5 fois)
12345
=> false
ou0
1112111
=> false
ou0
4242424242
=> true
ou 1
(42 répétitions 5 fois)
-11111
=> true
ou1
3452514263534543543543543543876514264527473275
=> true
ou 1
(543 répétitions 5 fois)
Si vous utilisez d'autres types de «vérité» et «faux», spécifiez-le.
Règles
Les règles de base du code-golf s'appliquent.
Bonne chance!
1112111
ennuyeux?4242424242
ennuyeux?Réponses:
05AB1E , 8 octets
Code:
Explication:
La vérité est non nulle et la fausseté est nulle. Utilise l' encodage CP-1252 .
Essayez-le en ligne!
la source
Œ
avec×
.Rétine , 9 octets
Vérifiez tous les tests! (légèrement modifié pour exécuter tous les tests en même temps.)
la source
12345
(.+){5}
développe en(.+)(.+)(.+)(.+)(.+)
tandis qu'il se(.+)\1{4}
développe en(.+)\1\1\1\1
.Java 8, 52 octets
Outgolfed cette réponse Java 8 avec un direct
String#matches
.Explication:
Essayez-le ici.
la source
Java 8,
7366 octets:Hourra pour les lambdas Java 8! Renvoie
true
si une correspondance est trouvée etfalse
sinon.Essayez-le en ligne! (Ideone)
la source
Lua, 35 octets
Eh bien, je ne vois pas comment faire mieux avec les modèles de Lua! Prend un argument de ligne de commande comme entrée et sortie
nil
pour les cas de falsification, et le nombre répété lorsqu'il est véridique.la source
JavaScript, 16 octets
Dans node.js (60 octets)
Gaspiller une tonne d'octets en entrée / sortie.
JavaScript ES6 (33 octets)
Encore une fois gaspillage d'octets sur les entrées / sorties.
De préférence, en tant que fonction anonyme (22 octets)
Ou encore plus court ( 16 octets )
Merci @BusinessCat d'avoir signalé mes erreurs.
la source
/(.+)\1{4}/.test(n)
place dematch
qui enregistre quelques octets. De plus, il ne semble pas que cela produira quoi que ce soit.Uncaught TypeError: Method RegExp.prototype.test called on incompatible receiver undefined
. Je ne sais pas si cela compte techniquement comme une réponse correcte, ne faudrait-il pas que ce soit quelque chose du genre/./.test.bind(/(.+)\1{4}/)
?Python 3.5,
4943 octets:( -6 octets grâce aux conseils de Martin Ender ! )
Utilise une expression régulière pour faire correspondre toutes les séquences de caractères répétitives tant qu'elles se répètent en continu 5 fois ou plus. Renvoie un
re
objet de correspondance (tel que<_sre.SRE_Match object; span=(0, 10), match='4242424242'>
) si une correspondance est trouvée comme valeur véridique, et rien ouNone
comme valeur de falsey.Essayez-le en ligne! (Ideone)
la source
{4,}
par{4}
?\1
faire après le groupe regex?Perl,
1715 octets+ le
p
drapeau.(courir avec
perl -pe '$_=/(.+)\1{4}/'
)Merci à Dom Hasting pour le
(.+)
lieu de(\d+)
.Explications si nécessaire:
(.+)
correspondra à n'importe quelle partie du nombre et\1{4}$
recherche s'il est répété 4 fois de suite.la source
$_=/(\d+)\1{4}/
place comme111112
c'est ennuyeux mais cela ne l'attrapera pas. Vous pourriez même être en mesure d'utiliser/./
selon la réponse Retina.C # -
9338 octetsPrend une chaîne, retourne un entier.
Merci à aloisdg pour avoir économisé beaucoup d'octets!
la source
@"(.+)\1{4}"
fonctionnerait pas aussi comme l'expression régulière? Est-ce que dans mon environnement C # au moins.s=>Syst...
s=>new Regex(@"(.+)\1{4}").IsMatch(s);
Parce que nous restons en .NET (qui est notre stdlib) et que nous ne comptons jamais pourusing System.Linq;
ouusing System.Collections.Generic
.Pyth ,
98 octets1 octet grâce à Maltysen.
La valeur vraie est un tableau non vide.
La valeur de Falsey est
[]
(tableau vide).Suite de tests.
la source
m
avecf
et en prenant la somme.Mathematica,
464036 octetsUne fonction. Prend une chaîne en entrée et en sortie
True
ouFalse
. Teste les chaînes par rapport à l'expressiona__~~a__~~a__~~a__~~a__
, qui représente la même séquence de caractères répétée 5 fois. Pour référence, la solution la plus courte utilisant une expression régulière fait 45 octets de long:vous maudit RegularExpression!
la source
PHP,
3733 octetsgrâce à NoOneIsHere, j'ai oublié
<?=
programme pour PHP <5.4, imprime
1
pour les nombres ennuyeux,0
sinonusage:
register_globals=1
enphp.ini
php-cgipuis appeler
php-cgi <filename> n=<number>;echo""
$n
par$_GET[n]
solution non regexp,
152147140 octetsremplacez
die(1)
pardie(print 1)
et ajoutezecho 0;
pour imprimer à la placeshort_open_tags=1
si désactivé$n+1
parceil(strlen($n)/5)+1
ou au moins parstrlen($n)
pour les tests ou elle peut boucler comme pour toujours.la source
<?=preg_match
... est quelques caractères plus courtsHaskell, 80 (63?)
Ce serait 63 s'il n'y avait pas de déclaration d'importation.
Usage
Soit dit en passant, consécutif a plus de sens pour moi que continuellement.
(Désolé, je ne peux pas encore commenter.)
la source
MATLAB, 26 ou 13 octets
cela prend une variable entière «i». Une chaîne n'est que la dernière partie:
J'ai compté la nouvelle ligne comme un personnage.
la source
i=input('')
ou faites du tout une fonction (par exemple@(i)...
). BTW, je ne pense pas que ce serait trop d'étirement pour prendre déjà l'entier comme une chaîne. PS Je pense que ça échoue pour le dernier cas de test et aussi simple211111
.TSQL, 151 octets
Golfé:
Non golfé:
Violon
la source
PowerShell, 26 octets
Je ne suis en aucun cas un maître des regex, alors merci aux autres réponses pour cela.
la source
Clojure, 24 octets
Utilise les valeurs falsey de clojure de
nil
/false
et les valeurs véridiques pour tout le reste. Plus précisément,nil
lorsqu'aucune correspondance n'est trouvée pour false, et un tableau[]
pour true lorsqu'une correspondance est trouvée comme pour 11111["11111" "1"]
est alors vraie.la source
JS sans regexes, 166
non minifié:
la source