Desafio simples: dada uma série de números inteiros positivos, encontre o número que contém entre seus dígitos o maior número de dígitos consecutivos. O truque? É permitido que os dígitos nas execuções contornem os valores possíveis ( 0123456789
) e retrocedam. Portanto 2345
, ambos 89012
e 5432109
são execuções válidas de dígitos consecutivos (mas não3456765
nem321090123
como o prazo deve ser sempre na mesma direção, embora 3456765
pode ser considerado como duas corridas: 34567
e 765
). No caso de empate, devolva o primeiro.
Casos de teste:
Input: [3274569283, 387652323, 23987654323648, 2345687913624]
Output: 23987654323648
(The run is 98765432; run length: 8)
Input: [123012363672023, 098761766325432, 15890123456765]
Output: 15890123456765
(The run is 8901234567; run length: 10)
Input: [43, 19, 456]
Output: 456
Input: [5, 9, 0]
Output: 5
Input: [71232107, 7012347]
Output: 7012347
Input: [1234, 32109876]
Output: 32109876
Input: [9090, 123]
Output: 123
Notas:
- Haverá pelo menos um número na entrada.
- Os números de entrada podem conter zeros à esquerda.
- Entrada e saída podem estar em qualquer formato razoável . Assim, os números de entrada podem ser tomados como strings, listas de dígitos / caracteres ...
- A saída pode conter espaços em branco à direita e / ou à esquerda e novas linhas, desde que o número seja impresso.
- Isso é código-golfe , portanto, pode ganhar o programa / função mais curto para cada idioma!
[7,8,1,6]
tem uma execução máxima de, em[7,8]
vez de[6,7,8]
, sim?78
nesse caso.Respostas:
Gelatina , 18 bytes
Experimente online!
Toma e retorna como lista de dígitos, para preservar os zeros à esquerda.
fonte
3210
, em primeiro número btw)A
lá dentro.JavaScript (ES6),
10410298 bytesRecebe a entrada como uma lista de listas de dígitos. Retorna o melhor.
Casos de teste
Mostrar snippet de código
fonte
Geléia ,
18 1615 bytesUm link monádico que obtém uma lista de listas de dígitos e retorna o mais à esquerda que contém uma execução máxima, conforme descrito.
Experimente online! ou consulte um conjunto de testes (com processamento para fazer com que a E / S pareça estar em questão).
Quão?
fonte
V€
Se não tiver certeza disso, talvez seja necessário contar os zeros à esquerda.Python 2 , 118 bytes
Faz uma lista de listas de dígitos
a
; retorna uma de suas listas.Experimente online!
fonte
[[9,0,9,0],[1,2,3]]
.Casca , 20 bytes
Pega e retorna uma lista de listas de dígitos. Experimente online!
Explicação
fonte
MATLAB, 130 bytes
Pegue a entrada na matriz, matriz das diferenças de coluna [X (2) -X (1), ..., X (n) -X (n-1)], verifique o valor mais frequente na matriz (1 ordem crescente - 1 caso contrário), obtenha o índice para o valor mais frequente ou -9 multiplicado pelo valor mais frequente (-9 ocorre em ordem crescente, 9 caso contrário), encontre os índices consecutivos (ou seja, cuja diferença seja igual a 1) e some-o por favor, porque é tarde. Saída o maior.
Experimente online!
fonte