O desafio é detectar seqüências inteiras ausentes de arquivos ou diretórios. Você tem um diretório preenchido com arquivos / diretórios nomeados como números inteiros.
Os arquivos / diretórios são gerados a partir de vários encadeamentos, mas o trabalho não foi concluído - portanto, existem lacunas na sequência.
A entrada é dois números inteiros, um início e um fim, e sua tarefa é detectar o número inteiro inicial das próximas seqüências ausentes. Você pode presumir que todos os arquivos e diretórios no diretório em que são executados possuem apenas arquivos ou diretórios nomeados inteiros.
Formulários de resposta aceitáveis: funções, trechos de código - eles devem ser executados na linha de comando.
Entrada inicial / final aceitável: incluídas na linha de comando, as variáveis env / argv estão corretas , os parâmetros para funções, a entrada do usuário está correta .
O menor código vence.
Atualização - Embora eu tenha conseguido extrair essa, havia muitas respostas interessantes. A idéia na resposta Bash do apricotboy foi usada em parte para me ajudar a criar minha resposta de 35 Byte Bash. Boa sorte no próximo.
E.g. Presume files 1,2,3,4,7,8,9,10,18 are present, start is 1, end is 20:
The output should be:
5
11
19
fonte
Respostas:
Python 2, 101 bytes
2 bytes graças a @xnor.
fonte
import os
que você deveria tirar.if~-n!=t:
pode serif~t+n:
.Dyalog APL ,
2524 ou 36 bytesSolicita o limite inferior e o limite superior.
Parece que de comentários a outras respostas o OP queria o mais breve possível.
{
⍵/⍨
aqueles em que~
não é verdade⍵∊⍨
que o conjunto contém⍵-1
seu predecessor}
de(
(⍳⎕)
números inteiros até n,~
exceto⍳⎕-1
números inteiros até n -1,)~
exceto⍎¨
a avaliação de cada uma das⎕SH'dir/b'
listas simples de nomes no diretório atualResposta antiga que retorna seqüências de comprimento 1:
(
⍕
representação¨
de sequência de cada um(⍳⎕)
dos números inteiros até n,~
exceto⍳⎕-1
números inteiros até n -1,)~
exceto⎕SH'dir/b'
a lista simples de arquivos no diretório atualSó funciona no Windows. Uma solução multiplataforma:
0
apenas o (s) nome (s)⎕NINFO
do (s) arquivo (s) nativo (s) INFOrmation⍠1
usando curingas⊢'*'
em todos os arquivosfonte
Ruby,
746045 bytesA entrada está na linha de comando, execute-a como
ruby f.rb 0 20
. Funciona apenas no diretório atual.-1 byte de descompactar as
ARGV
variáveis into e -13 bytes de substituição deselect
egrep
por uma subtração de conjunto.V3: -5 bytes do uso de uma substituição
Dir.glob
em uma resposta antiga do Ruby para outro desafio do sistema de arquivos , conforme sugerido por @PatrickOscity. -10 de lembrar algumas peculiaridades naString#next
função de Ruby .fonte
Perl 6, 47 bytes
Explicação:
Tentei usar chinelos. Não conseguiu: P.
fonte
}
.PHP, 64 bytes
Execute assim:
Nota:
Somente o diretório atual.
Nenhuma nova linha à direita na saída.
Isso requer
<?=
que seja permitido no php.ini. O que eu acho que é o padrão, mas não tenho certeza.Bash, 31 bytes
Executar como
a 1 20
. Novamente, apenas o diretório atual.Posso enviar dois? Espero que sim. Este é o meu primeiro post no Code Golf, então não tenho muita certeza da etiqueta. Espero que eu esteja contando meus bytes corretamente também.
fonte
Vejo agora que esta é uma pergunta antiga, mas ainda assim, eu gosto ...
PowerShell, 70 bytes
Execute como um script na linha de comando, por exemplo, \ misso.ps1 1 20.
fonte
PowerShell v4 +, 62 bytes
Salve como um script no diretório desejado e chame-o localmente (veja o exemplo abaixo). Toma entrada
$x
e$y
e constrói um intervalo..
, então tubos que para umWhere-Object
(a|?{...}
), que é basicamente um filtro. Aqui, estamos apenas selecionando itens onde o elemento atual$_
é-notin
a.Name
coleção do diretório atual, mas o elemento anterior é-in
essa coleção (ou seja, apenas o início de um intervalo ausente).O
ls
é um alias paraGet-ChildItem
e é basicamente o que você esperaria. Requer v4 para a seleção de encapsulamento de.Name
, caso contrário, você precisaria$a=ls ".\"|select Name
.Exemplo
fonte
Groovy, 53 bytes
Eu tive uma explicação e capturas de tela, mas não publiquei essa versão e saí da página ... Ou então, postei a resposta em um tópico aleatório do SO sobre a "melhor maneira de definir um diretório no Groovy".
fonte