Si un número entero tiene un dígito / secuencia de dígitos que se repite continuamente (comprenderá por qué dije "continuamente") 5 o más veces, lo llamamos "aburrido".
Por ejemplo, 11111
es aburrido, mientras 12345
que no lo es.
Instrucciones
Tomar un entero como entrada
Genere un valor verdadero si el entero es aburrido, y un valor falso si el entero no es aburrido.
Ejemplo
11111
=> true
o 1
(1 se repite 5 veces)
12345
=> false
o0
1112111
=> false
o0
4242424242
=> true
o 1
(42 repeticiones 5 veces)
-11111
=> true
o1
3452514263534543543543543543876514264527473275
=> true
o 1
(543 se repite 5 veces)
Si utiliza otros tipos de "verdad" y "falso", especifíquelo.
Reglas
Se aplican reglas básicas de código de golf .
¡Buena suerte!
1112111
aburrido?4242424242
aburrido?Respuestas:
05AB1E , 8 bytes
Código:
Explicación:
La verdad no es cero y la falsedad es cero. Utiliza la codificación CP-1252 .
Pruébalo en línea!
fuente
Œ
con×
.Retina , 9 bytes
¡Verifique todos los casos de prueba! (ligeramente modificado para ejecutar todos los casos de prueba a la vez).
fuente
12345
(.+){5}
expande a(.+)(.+)(.+)(.+)(.+)
mientras que se(.+)\1{4}
expande a(.+)\1\1\1\1
.Java 8, 52 bytes
Superó esta respuesta de Java 8 con un directo
String#matches
.Explicación:
Pruébalo aquí
fuente
Java 8,
7366 bytes:¡Hurra por las lambdas de Java 8! Devuelve
true
si se encuentra una coincidencia y de lofalse
contrario.¡Pruébelo en línea! (Ideona)
fuente
Lua, 35 bytes
Bueno, ¡no veo cómo hacerlo mejor con los patrones de Lua! Toma un argumento de línea de comando como entrada y salida
nil
para casos falsos, y el número se repite cuando es verdadero.fuente
JavaScript, 16 bytes
En node.js (60 bytes)
Perder una tonelada de bytes en entrada / salida.
JavaScript ES6 (33 bytes)
Nuevamente desperdiciando bytes en entrada / salida.
Preferiblemente, como una función anónima (22 bytes)
O incluso más corto ( 16 bytes )
Gracias @BusinessCat por señalar mis errores.
fuente
/(.+)\1{4}/.test(n)
lugar de lomatch
que ahorra unos pocos bytes. Además, no parece que esto realmente produzca nada.Uncaught TypeError: Method RegExp.prototype.test called on incompatible receiver undefined
. No estoy seguro de si eso técnicamente cuenta como una respuesta correcta, ¿no debería ser algo así/./.test.bind(/(.+)\1{4}/)
?Python 3.5,
4943 bytes:( -6 bytes gracias a los consejos de Martin Ender ! )
Utiliza una expresión regular para hacer coincidir todas las secuencias repetidas de caracteres siempre que se repitan continuamente 5 o más veces. Devuelve un
re
objeto de coincidencia (como<_sre.SRE_Match object; span=(0, 10), match='4242424242'>
) si una coincidencia se encuentra como un valor verdadero y nada oNone
como un valor falso.¡Pruébelo en línea! (Ideona)
fuente
{4,}
por{4}
?\1
hacer después del grupo regex?Perl,
1715 bytes+ la
p
bandera(correr con
perl -pe '$_=/(.+)\1{4}/'
)Gracias a Dom Hasting por el
(.+)
lugar de(\d+)
.Explicaciones si es necesario:
(.+)
coincidirá con cualquier parte del número y\1{4}$
buscará si se repite 4 veces consecutivas.fuente
$_=/(\d+)\1{4}/
ya que111112
es aburrido, pero esto no lo atrapará. Incluso podría usar/./
según la respuesta de Retina.C # -
9338 bytesToma una cadena, devuelve un entero.
¡Gracias a aloisdg por guardar muchos bytes!
fuente
@"(.+)\1{4}"
work as the regex as well? Does in my C# environment at least.s=>Syst...
s=>new Regex(@"(.+)\1{4}").IsMatch(s);
Because we stay in .NET (which his our stdlib) and we never count forusing System.Linq;
orusing System.Collections.Generic
.Pyth,
98 bytes1 byte thanks to Maltysen.
Truthy value is a non-empty array.
Falsey value is
[]
(empty array).Test suite.
fuente
m
withf
and taking out the sum.Mathematica,
464036 bytesFunction. Takes a string as input and outputs
True
orFalse
. Tests strings against the expressiona__~~a__~~a__~~a__~~a__
, which represents the same character sequence repeated 5 times. For reference, the shortest solution using a regex is 45 bytes long:curse you RegularExpression!
fuente
PHP,
3733 bytesgracias a NoOneIsHere, me olvidé
<?=
programa para PHP <5.4, impresiones
1
para números aburridos, de lo0
contrariouso:
register_globals=1
enphp.ini
php-cgiluego llamar
php-cgi <filename> n=<number>;echo""
$n
con$_GET[n]
solución no regexp,
152147140 bytesreemplaza
die(1)
condie(print 1)
y agregaecho 0;
para imprimir en su lugarshort_open_tags=1
si está deshabilitado$n+1
conceil(strlen($n)/5)+1
o al menos constrlen($n)
para probar o puede bucle como para siempre.fuente
<?=preg_match
... es un poco más cortoHaskell, 80 (¿63?)
Sería 63 si no hubiera una declaración de importación.
Uso
Por cierto, consecutiva tiene más sentido para mí que continuamente.
(Lo siento, no puedo comentar todavía).
fuente
MATLAB, 26 o 13 bytes
esto toma una variable entera 'i'. Una cadena es solo la última parte:
He contado la nueva línea como un personaje.
fuente
i=input('')
o haz que todo sea una función (por ejemplo@(i)...
). Por cierto, no creo que ya sea demasiado estresante tomar el entero como una cadena. PD: Creo que falla para el último caso de prueba y también simple211111
.TSQL, 151 bytes
Golfizado:
Sin golf:
Violín
fuente
PowerShell, 26 bytes
De ninguna manera soy un maestro de expresiones regulares, así que acrediten a las otras respuestas por eso.
fuente
Clojure, 24 bytes
Utiliza los valores falsos de clojure de
nil
/false
y los valores de verdad para todo lo demás. Específicamente,nil
cuando no se encuentra una coincidencia para falso, y una matriz[]
para verdadero cuando se encuentra una coincidencia como para 11111, entonces["11111" "1"]
es verdadero.fuente
JS sin expresiones regulares, 166
no minificado:
fuente