Dada uma sequência de dígitos ou um número inteiro como entrada, você terá que indexá-lo.
É assim que você modifica a entrada. Vamos usar 30043376111
como exemplo:
Primeiro, encontre a soma dos índices de cada ocorrência dos respectivos dígitos:
0: 1 + 2 = 3
1: 8 + 9 + 10 = 27
3: 0 + 4 + 5 = 9
4: 3
6: 7
7: 6
Em seguida, construa um novo número inteiro ou sequência de caracteres onde os dígitos acima vão na ordem das somas de seus índices. No caso de vários dígitos produzirem a mesma soma, o dígito menor vem antes do maior:
047631
Por fim, remova todos os zeros à esquerda e retorne ou imprima o resultado:
47631
Você deve escrever um programa ou função que retorne ou imprima a entrada indexada.
Isso é código-golfe , então o código mais curto em bytes vence!
Mais casos de teste podem ser adicionados, se solicitado.
Respostas:
k, 7 bytes
repl online
A justaposição de funções é composição, portanto, nenhum parâmetro explícito ou entrada é necessária.
fonte
Haskell, 69 bytes
Pega uma string, retorna um número. Exemplo de uso:
f "30043376111"
->47631
. Experimente online!Bem direto: classifique os dígitos da string de entrada primeiro na soma de seus índices e pelo dígito em si (-> pares de (soma ..., d)), remova duplicatas e converta em um número para remover as iniciais
0
. O0+
é necessário para obter os tipos direita.fonte
Empilhados , 59 bytes
Experimente online!
Isso pega uma sequência de caracteres (como
$'1231231'
) como entrada da parte superior da pilha e deixa uma sequência na pilha.Explicação
Agora ficamos com pares de (chr, soma dos índices).
fonte
05AB1E ,
2928 bytes-1 graças a Riley
Experimente online!
fonte
TFN
para9Ývy
JavaScript (ES6), 98 bytes
Pega uma string
n
e a converte em um conjunto e, em seguida, em uma matriz de dígitos distintos. Classifica esses dígitos em ordem numérica e, em seguida, classifica novamente de acordo com a soma dos índices. Concatena a matriz classificada em uma seqüência de caracteres e, finalmente, converte-se em um número para remover zeros à esquerda.fonte
.sort()
, uma entrada de 1332 rendimentos 132 em vez de 123.PowerShell , 88 bytes
Experimente online!
Define uma hashtable vazia
$a
, depois lança a entrada$args
como umachar
matriz e percorre cada elemento|%{...}
. Definimos o valor como "o elemento atual" de$a
a ser incrementado$i++
, para contar os índices de nossas entradas. Por exemplo, para entrada300433766111
, o primeiro loop$a[3]
obtém+=0
; o próximo loop,$a[0]
obtém+=1
; etc.Em seguida, precisamos da
Sort
nossa hashtable. Infelizmente, devido a uma peculiaridade do idioma interno, isso significa que precisamos fazer$a.GetEnumerator()
isso antes de podermos fazer a classificação real. Classificamos porvalue
, depois porname
, para satisfazer o requisito de dígitos menores serem classificados primeiro. Nós extraímos os.Name
s (em ordem ordenada),-join
eles juntos em uma string e a convertemos como int+
para remover zeros à esquerda. Isso é deixado no pipeline e a produção está implícita.fonte
Gelatina , 10 bytes
Experimente online!
Pega e retorna um número inteiro.
Quão?
fonte
PHP, 103 bytes
fonte
Python 2,
10292 bytesAgradecimentos a Ben Frankel por salvar 10 bytes!
Experimente Online!
Pega entrada como uma sequência e gera um número inteiro. Usa um dicionário para armazenar a soma dos índices e depois os classifica por valor. Converte em um número inteiro para eliminar os zeros à esquerda, porque
int
é menor que.lsplit('0')
.fonte
a[j]=a.get(j,0)+i
salva 10 bytes.Python 3.5,
8685 bytesObrigado @Ben Frankel por salvar um byte:
Código antigo:
Função anônima pegando uma sequência de dígitos e retornando um número inteiro
fonte
sum(i*(c==d)for
salva 1 byte.Pip , 18 bytes
Pega o número como um argumento de linha de comando. Experimente online!
Explicação
fonte
C #, 245 bytes
Não estou feliz com o tempo que acabou sendo e provavelmente pode ser mais curto, mas foi com isso que acabei.
fonte
Perl 6 ,
65 6152 bytesTente
Tente
Tente
Expandido
fonte
Scala,
123104 bytesExemplo (usando o Scala REPL):
Bem simples, usando tupla como predicado de classificação para classificação secundária.
fonte
Pitão, 9 bytes
Experimente online
Toma uma sequência de dígitos como entrada.
fonte