Selamat datang di hari pertama Anda di PPCG Inc. Sebagai penyortir dokumen asisten junior terbaru kami, Anda bertanggung jawab untuk memastikan semua dokumen yang kami kirimkan kepada Anda diarsipkan dalam urutan abjad. Sangat mudah monyet bisa melakukannya. Nah, secara metaforis, seperti kita menyewa monyet untuk melakukannya. Tebak apa? Ternyata monyet kurang mengerti alfabet kita. Ngomong-ngomong, tidak ada waktu untuk memperbaiki kekacauan yang ada saat ini, jadi cobalah untuk tidak memperburuk situasi, ok? Kalau begitu lakukanlah! Jika Anda lapar, ada pisang di dekat pendingin air. Semoga berhasil!
Uraian Tugas
Memasukkan
- Anda akan menerima daftar string (arsip) dan string yang perlu ditambahkan ke daftar itu (dokumen)
- Semua string hanya akan berisi huruf besar, huruf kecil, dan spasi
- String akan selalu dimulai dan diakhiri dengan surat
Tugas
Tentukan posisi target dokumen: posisi yang harus diterima dalam arsip. Posisi target dapat ditentukan sebagai berikut:
- Untuk setiap posisi:
- Hitung jumlah string dalam arsip sebelum posisi itu yang abjad sebelum dokumen
- Hitung jumlah string dalam arsip setelah posisi itu yang sesuai abjad setelah dokumen
- Tentukan skor posisi sebagai jumlah dari dua hitungan di atas
- Posisi target dokumen adalah posisi dengan skor tertinggi
- Dalam hal seri, semua posisi dengan skor tertinggi sama-sama valid sebagai posisi target. Hanya satu yang perlu dipilih.
Saat menyortir:
- Huruf besar dan kecil sama
- Spasi datang sebelum surat
Keluaran
- Arsip dengan dokumen ditambahkan ke dalamnya dalam bentuk apa pun
ATAU
- Posisi target dokumen, dalam indeks berbasis 0 atau 1
Evaluasi pekerjaan
Bytes paling sedikit menang!
Contoh I / O
Archive:
Applebuck Season
Friendship is Magic
The Ticket Master
Griffon the BrushOff
Boast Busters
Bridle Gossip
Document: Dragonshy
Position scores (0-based index):
0: 0 + 3 = 3
1: 1 + 3 = 4
2: 1 + 2 = 3
3: 1 + 1 = 2
4: 1 + 0 = 1
5: 2 + 0 = 2
6: 3 + 0 = 3
Target position: 1
Jawaban:
JavaScript (ES6), 81 byte
Tidak Disatukan:
Sunting: Menyimpan banyak byte berkat @ user81655.
sumber
indexOf
dengan variabel hasil yang ditetapkan selama peta akan lebih pendek juga.Pyth,
4038 byteKredit untuk @Katenkyo untuk mengajar saya bahwa
A xnor B
pada dasarnyaA==B
. (A xor B
jugaA!=B
)Cobalah online!
Bagaimana itu bekerja:
Ini menjumlahkan XNOR apakah entri lebih kecil dari dokumen, dan apakah indeks entri lebih kecil dari indeks dokumen.
Ia menemukan posisi di mana jumlah ini adalah maksimum, lalu mengeluarkannya.
sumber
Python 3,
135167 Bytessumber
Ruby, 97 byte
Fungsi anonim, mengembalikan posisi target.
Ketika benar-benar memasukkan ke dalam arsip, 110 byte :
sumber
Pyth,
54524745 byteMasukan yang diharapkan adalah daftar, elemen pertama adalah daftar string (arsip), elemen kedua adalah string (dokumen)
Tes di sini
sumber
0
yang jika saya membaca kode Anda dengan benar dapat menghemat ruang["Applebuck Season","Friendship is Magic","The Ticket Master","Griffon the BrushOff","Boast Busters","Bridle Gossip"]\n "Dragonshy"
sebagai input dan menggunakanE
sebagai ganti@Q0
dan@Q1
dapat menghemat empat byte.AQ
bukanJ@Q0K@Q1
.MATL , 32 byte
Input adalah array sel string (beberapa string dipisahkan oleh spasi dan dilampirkan dalam kurung kurawal) untuk arsip, dan string untuk dokumen. Output berbasis 1. Dalam kasus seri, posisi pertama dikembalikan.
Cobalah online!
Penjelasan
sumber