Tantangannya adalah untuk mendeteksi urutan bilangan bulat dari file atau direktori yang hilang. Anda memiliki direktori yang diisi dengan file / direktori yang dinamai integer.
File / direktori dihasilkan dari banyak utas namun pekerjaan tidak selesai - karena itu ada kesenjangan dalam urutan.
Inputnya adalah dua bilangan bulat, awal dan akhir, dan tugas Anda mendeteksi bilangan bulat mulai dari urutan yang hilang berikutnya. Anda dapat menganggap bahwa semua file dan direktori dalam direktori di mana run hanya memiliki file atau direktori bernama integer.
Formulir jawaban yang dapat diterima: fungsi, cuplikan kode - harus dijalankan di baris perintah.
Input awal / akhir yang dapat diterima: termasuk pada baris perintah, variabel env / argv baik-baik saja , parameter berfungsi, input pengguna baik-baik saja .
Kode terpendek menang.
Pembaruan - Meskipun saya berhasil memeras yang ini, ada banyak jawaban menarik. Gagasan dalam jawaban Bash apricotboy digunakan sebagian untuk membantu saya mendesain jawaban Byte Bash 35 Byte saya. Semoga sukses untuk yang berikutnya.
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
Jawaban:
Python 2, 101 byte
2 byte berkat @xnor.
sumber
import os
yang harus Anda keluarkan.if~-n!=t:
bisaif~t+n:
.Dyalog APL ,
2524 atau 36 byteAnjuran untuk batas bawah, lalu batas atas.
Tampaknya dari komentar hingga jawaban lain bahwa OP menginginkan sekuens sesingkat mungkin.
{
⍵/⍨
yang~
tidak benar⍵∊⍨
bahwa himpunan berisi⍵-1
pendahulunya}
dari(
(⍳⎕)
bilangan bulat sampai n~
kecuali⍳⎕-1
bilangan bulat sampai n -1)~
kecuali⍎¨
evaluasi dari masing-masing⎕SH'dir/b'
daftar nama kosong di direktori saat iniJawaban lama yang mengembalikan urutan panjang-1:
(
⍕
representasi string¨
dari masing-masing(⍳⎕)
bilangan bulat sampai n~
kecuali⍳⎕-1
bilangan bulat sampai n -1)~
kecuali⎕SH'dir/b'
daftar telanjang file dalam direktori saat iniHanya berfungsi di Windows. Solusi lintas platform:
0
hanya nama file⎕NINFO
dari file Native (s) INFOrmation⍠1
menggunakan wildcard⊢'*'
pada semua filesumber
Ruby,
746045 byteInput ada di baris perintah, jalankan seperti
ruby f.rb 0 20
. Hanya berfungsi di direktori saat ini.-1 byte dari membongkar
ARGV
variabel ke dalam, dan -13 byte dari menggantiselect
dangrep
dengan set pengurangan.V3: -5 byte dari menggunakan substitusi
Dir.glob
dalam jawaban Ruby lama untuk tantangan filesystem lain , seperti yang disarankan oleh @PatrickOscity. -10 dari mengingat beberapa kebiasaan dalamString#next
fungsi Ruby .sumber
Perl 6, 47 byte
Penjelasan:
Mencoba menggunakan sandal jepit. Tidak berhasil: P.
sumber
}
.PHP, 64 byte
Jalankan seperti ini:
catatan:
Hanya direktori saat ini.
Tidak ada garis akhir pada output.
Ini mengharuskan
<?=
untuk diizinkan di php.ini. Yang saya pikir adalah default tetapi saya tidak yakin.Bash, 31 byte
Jalankan sebagai
a 1 20
. Sekali lagi, hanya direktori saat ini.Bisakah saya mengirim dua? Semoga saja. Ini adalah posting pertama saya ke Code Golf jadi saya tidak terlalu yakin dengan etiketnya. Saya harap saya menghitung byte saya dengan benar juga.
sumber
Saya melihat sekarang ini adalah pertanyaan lama, tapi tetap saja, saya menyukainya ...
PowerShell, 70 byte
Jalankan sebagai skrip dari baris perintah, mis. \ Misso.ps1 1 20.
sumber
PowerShell v4 +, 62 byte
Simpan sebagai skrip di direktori yang diinginkan dan panggil secara lokal (lihat contoh di bawah). Mengambil input
$x
dan$y
dan membangun rentang..
, lalu mengirimkannya keWhere-Object
(yang|?{...}
) yang pada dasarnya adalah filter. Di sini kita hanya memilih item mana elemen saat$_
ini-notin
yang.Name
koleksi direktori saat ini, tetapi elemen sebelumnya adalah-in
bahwa pengumpulan (yaitu, hanya awal dari serangkaian hilang).Ini
ls
adalah alias untukGet-ChildItem
dan pada dasarnya adalah apa yang Anda harapkan. Membutuhkan v4 untuk enkapsulasi-pilih.Name
, jika tidak Anda akan perlu$a=ls ".\"|select Name
.Contoh
sumber
Groovy, 53 byte
Saya punya penjelasan dan tangkapan layar, tetapi saya tidak memposting versi itu dan meninggalkan halaman ... Entah itu atau saya memposting jawaban ke utas SO acak tentang "cara terbaik untuk membuat direktori di Groovy".
sumber