Entradas
Uma lista (matriz) de números ou seqüências numéricas, se isso facilitar. Você pode assumir que sempre haverá pelo menos dois elementos na lista e cada elemento será um número natural (número inteiro maior que zero).
Saídas
Um único número, ou novamente, uma sequência numérica.
Problema
A idéia é reduzir a lista de números removendo o último dígito do maior número no estágio atual da lista, terminando com um número (apenas um número deve ser retornado, mesmo se houver várias instâncias)
Exemplo
[123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78
[123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46
[123,343,121,76,46,78] -- Repeat until left with one number
[123,34,121,76,46,78]
[12,34,121,76,46,78]
[12,34,12,76,46,78]
[12,34,12,76,46,7]
[12,34,12,7,46,7]
[12,34,12,7,4,7]
[12,3,12,7,4,7]
[1,3,1,7,4,7] -- If there are multiple max numbers, you **must** remove the last digit from all of them
[1,3,1,4]
[1,3,1]
[1,1] -- You have your answer when there is one number, or multiple numbers that are equal
1 -- Result
Lacunas
Outras restrições
Seu programa deve funcionar para qualquer lista de números aleatórios (dentro da razão do curso)
Casos de teste
[24,72,4]
[24,7,4]
[2,7,4]
[2,4]
[2]
2
[14, 7]
[1, 7]
[1]
1
[1278,232,98273,2334]
[1278,232,9827,2334]
[1278,232,982,2334]
[1278,232,982,233]
[127,232,982,233]
[127,232,98,233]
[127,232,98,23]
[127,23,98,23]
[12,23,98,23]
[12,23,9,23]
[12,2,9,2]
[1,2,9,2]
[1,2,2]
[1]
1
Pontuação
Isso é código-golfe , então a resposta mais curta em todos os idiomas vence!
code-golf
array-manipulation
Henry
fonte
fonte
[12, 123, 124]
estejam erradas .12
Respostas:
Haskell , 16 bytes
Experimente online!
fonte
Python 2 , 24 bytes
-4 bytes graças a notjagan.
Experimente online!
fonte
min(zip(*l)[0])
.Python 3 ,
24, 21, 18 bytesExperimente online!
Trêsseis bytes salvos graças ao @totallyhuman!fonte
Mathematica, 29 bytes
fonte
Japonês ,
865 bytes-1 byte graças a @Shaggy
Recebe a entrada como uma matriz de seqüências numéricas. Experimente online!
Explicação
fonte
n v g
também funcionaria para 5 bytes. Bem-vindo ao Japt, a propósito.05AB1E , 3 bytes
Experimente online!
fonte
[12,23,12]
.3,2,2,2,1
resulta em 1 conforme o esperado.PHP , 45 bytes
Experimente online!
fonte
[12,23,12]
.V ,
11, 5 bytesExperimente online!
Eu estava fazendo esse waaay mais complicado do que realmente é. Essa resposta simplesmente classifica cada linha por valores ASCII e, em seguida, retorna o primeiro caractere. Como essa é uma resposta gentil ou chata, aqui está uma resposta mais interessante que realmente implementa o algoritmo descrito originalmente:
V , 11 bytes
Experimente online!
fonte
Geléia ,
32 bytesUm programa completo que pega uma lista de listas de caracteres (strings) e imprime o resultado.
Experimente online!
Como?
Só precisamos retornar o menor dígito inicial ...
fonte
JavaScript (ES6), 17 bytes
Recebe entrada como uma matriz de seqüências de caracteres.
Tente
Insira uma lista de números separados por vírgula.
fonte
,,,, 3 bytes
Explicação
fonte
Braingolf , 17 bytes
Experimente online!
Explicação
Em outras palavras, ele constrói uma pilha que consiste apenas no primeiro dígito de cada item e gera o menor valor.
Esse desafio me deu um monte de idéias úteis para os integrados adicionarem ao Braingolf, e agora, graças à adição do loop foreach "especial", Braingolf pode fazê-lo em 5 bytes:
Braingolf , 5 bytes [não concorrente]
Explicação
Experimente online!
Normalmente sou contra a adição de componentes internos apenas para concluir um desafio, mas posso ver uma infinidade de usos para o novo
(...)
loop foreach, por isso não considero realmente adicionar um recurso apenas para esse desafio.fonte
[12,23,12]
. A saída esperada é2
, você retornou1
.1
:[12,23,12] > [12,2,12] > [1,2,1] > [1,1]
Funky , 18 bytes
Recebe entrada como uma lista de seqüências de caracteres.
Experimente online!
fonte
Pip , 5 bytes
Leva a lista de números de entrada como argumentos de linha de comando.
Experimente online!
Alternativamente:
Experimente online!
Explicações
Nos dois programas,
g
está a lista de argumentos da linha de comando.SS
classifica usando comparação de cadeias, colocando assim os números com os primeiros dígitos menores primeiro, independentemente de suas magnitudes. Unary@
fornece o primeiro elemento de uma lista ou escalar. Nós o aplicamos duas vezes para obter o primeiro dígito do primeiro número após a classificação.Alternativamente:
Z
é zip; sua versão unária pode ser usada para transpor uma lista. O primeiro elemento da lista transposta é uma lista dos primeiros dígitos de todos os números.@
obtém essa lista de dígitos;MN
leva o seu mínimo.fonte
PHP, 27 bytes
(Uau, entendi totalmente a pergunta. Isso não funciona. Será editado mais tarde.)
fonte
Pitão ,
97 bytesExperimente online!
Explicação
Isso basicamente retorna o menor dígito inicial.
fonte
Python 3 , 33 bytes
Experimente online!
@DJMcMayhem e @totallyhuman têm soluções melhores, mas a minha assume entrada numérica em vez de string.
fonte
Pitão, 3 bytes
Entrada é uma lista de representações de sequência de números.
Experimente Online
Explicação:
fonte