Los caracteres alfanuméricos tienen valores ASCII:
0-9 -> 48-57
A-Z -> 65-90
a-z -> 97-122
Su desafío es tomar un número entero como entrada y generar la cantidad de caracteres que pueden formarse utilizando dígitos consecutivos de ese número. Los códigos de caracteres pueden superponerse. 666
debe resultar en 2
, ya que tiene 66
dos veces.
Casos de prueba:
Input: 5698
Possible characters: '8' (56), 'E' (69), 'b' (98)
Output: 3
Input: 564693
Possible characters: '8' (56), 'E' (69)
Output: 2
Input: 530923864209124521
Possible characters: '5' (53), 'V' (86), '4' (52)
Output: 3
Input: 1111111
Possible characters: 'ooooo' (5*111)
Output: 5
Input: 5115643141276343
Possible characters: '3' (51), '8' (56), 'L' (76), 's' (115)
Output: 4
Input: 56789
Possible characters: '8' (56), 'C' (67), 'N' (78), 'Y' (89)
Output: 4
Input: 94
Possible characters: ''
Output: 0
Input: 1
Output: 0
Los formatos de entrada y salida son opcionales (sí, puede tomar el entero como una cadena).
ŒžKÇÃg
no funciona1111111
caso de prueba.Ã
, eso tiene MUCHO más sentido ahora que leí lo que está haciendo, mierda.Brachylog , 22 bytes
Pruébalo en línea!
Explicación
fuente
T
juntos?MATL ,
1713 bytesPruébalo en línea! O verificar todos los casos de prueba .
Explicación
fuente
Java 7,
204197195 bytesExplicación:
Código de prueba:
Pruébalo aquí
fuente
r
). Sin embargo, he podido jugar golf de 7 bytes al poner todo lo demás dentro del ciclo for, en un solo ternario. Veré si puedo hacer tu segunda sugerencia más tarde, tal vez. Mi hora de almuerzo ha terminado de nuevo, así que tendré que volver al trabajo. Lo tendré en cuenta.JavaScript (ES6),
7170 bytesCasos de prueba
Mostrar fragmento de código
fuente
Perl 5 , 47 bytes
46 bytes de código +
-p
bandera.Pruébalo en línea!
No pude encontrar una forma más corta de escribir eso
48..57,65..90,97..122
:map{ord}0..9,a..z,A..Z
(obtener el valor ascii de los caracteres) es un byte más largo. Y haciendofor$c(0..122){$\+=chr($c)=~/\pl|\d/ for/(?=$c)/g}}{
(buscando todos los números, pero manteniendo solo aquellos cuyos números corresponden al valor ascii de letras (\pl
) o dígitos (\d
)) será 5 bytes más largo (tenga en cuenta que\pl|\d
no puede ser reemplazado por\w
este último también incluye guiones bajos)) .Enfoque anterior (49 bytes):
fuente
PHP, 68 bytes
Versión en línea
fuente
JavaScript (ES),
165161156154153 bytes¡Sí, RegEx definitivamente no era la herramienta adecuada para el trabajo aquí!
Intentalo
fuente
Retina , 52 bytes
Pruébalo en línea! (incluye suite de pruebas)
fuente
Python 2 ,
746462 bytesPruébalo en línea!
fuente
Haskell,
161157138129126 bytesMe pregunto si hay una mejor manera de eliminar los engaños de la lista que importar Data.List para nub?
fuente
Data.Lists
en lugar deData.List
, puede utilizar:y<-tail$powerslice x
.Data.Lists
. Incluso se menciona en los consejos de golf para Haskell : nadie se ha quejado hasta ahora.or $ f <$> list
esany f list
:any(elem$read y)[...]
.Pyth,
191714 bytestoma una cuerda.
-3 Bytes gracias a @LeakyNun
¡Intentalo!
Explicación
fuente
idT
, puedes usarsd
.l@jGUTmr0Csd.:
podría ser más corto (no estoy seguro si funciona).Jalea , 8 bytes
La entrada es una matriz de dígitos.
Pruébalo en línea!
Cómo funciona
fuente
Ruby, 50 bytes.
Lee de entrada estándar; requiere que se invoque al intérprete de Ruby con la
-n
opción (implícitowhile gets
bucle ).Podría reducirse a 43 bytes si se le permitiera hacer coincidir los guiones bajos.
fuente
111
, lo que debería volver1
pero estás devolviendo0
.Japt , 24 bytes
Pruébalo en línea!
Versión alternativa de 27 bytes:
Pruébalo en línea!
fuente