Sebelum 1994, kamus Spanyol menggunakan urutan abjad dengan kekhasan : digraf ll
dan ch
dianggap seolah-olah mereka adalah huruf tunggal. ch
segera diikuti c
, dan ll
segera diikuti l
. Menambahkan surat ñ
, yang mengikuti n
dalam bahasa Spanyol, urutannya adalah:
a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z
Sejak tahun 1994 ll
dan ch
dianggap sebagai kelompok dua huruf ( l
, l
dan c
, h
masing-masing), dan dengan demikian urutan abjad sama dengan dalam bahasa Inggris, dengan pengecualian huruf ñ
.
Orde lama jelas lebih menarik .
Tantangan
Masukkan daftar kata-kata nol atau lebih dan output daftar diurutkan sesuai dengan urutan abjad Spanyol. Penyortiran adalah antara kata-kata (bukan antara huruf dalam suatu kata). Artinya, kata-kata adalah atomik, dan hasilnya akan berisi kata-kata yang sama dalam urutan yang mungkin berbeda.
Untuk mempermudah, kami tidak akan mempertimbangkan surat ñ
, atau vokal beraksen á
, é
, í
, ó
, ú
, atau huruf besar huruf. Setiap kata akan menjadi urutan satu atau lebih karakter yang diambil dari rentang inklusif dari ASCII 97 ( a
) hingga ASCII 122 ( z
).
Jika ada lebih dari dua l
huruf berturut-turut, mereka harus dikelompokkan dari kiri ke kanan. Artinya, lll
adalah ll
dan kemudian l
(tidak l
dan kemudian ll
).
Format input dapat berupa: kata-kata yang dipisahkan oleh spasi, oleh baris baru, atau karakter yang sesuai. Kata-kata dapat dikelilingi oleh tanda kutip atau tidak, sesuai pilihan Anda. Daftar atau susunan kata juga dapat diterima. Setiap format yang masuk akal adalah valid; sebutkan saja dalam jawaban Anda.
Dengan cara yang sama, output akan berupa format yang masuk akal (tidak harus sama dengan input).
Golf kode, kemenangan tersingkat.
Uji kasus
Dalam contoh berikut kata-kata dipisahkan oleh spasi. Baris pertama adalah input, kedua adalah output:
llama coche luego cocina caldo callar calma
caldo calma callar cocina coche luego llama
cuchara cuchillo cubiertos cuco cueva
cubiertos cuco cuchara cuchillo cueva
"Kata-kata" juga dapat berupa huruf tunggal:
b c a ch ll m l n
a b c ch l ll m n
atau kombinasi yang tidak mungkin (ingat aturan yang l
dikelompokkan kiri ke kanan):
lll llc llz llll lllz
llc lll lllz llll llz
Input kosong harus memberikan output kosong:
Tentu saja, pesanan ini dapat diterapkan ke bahasa lain juga:
chiaro diventare cucchiaio
cucchiaio chiaro diventare
all alternative almond at ally a amber
a almond alternative all ally amber at
rr
satu surat pun ; setidaknya tidak sejak 1803. Tapi memang benar bahwa itu dianggap sebagai satu huruf di AmerikaJawaban:
Pyth,
1413 bytePembaruan: melihat ini diterima dan memperhatikan golf 1 byte yang sepele. Aduh.
Cobalah online. Suite uji.
Untuk setiap kata, temukan semua kecocokan yang tidak tumpang tindih untuk regex
ll|ch|.
. Ini membagi kata menjadi "huruf". Kemudian, cukup urutkan kata berdasarkan daftar yang dibagi.sumber
:D
PowerShell,
46445150 byteThe
Α
karakter huruf alpha Yunani yang pada datang setelah semua huruf Latin dalam rangka bawaan semacam PowerShell (setidaknya di komputer saya, saya tidak yakin apakah itu berbeda lokal lain). Itu dihitung sebagai 2 byte dalam pengkodean UTF8.Contoh penggunaan, dengan asumsi string ini disimpan dalam file bernama
es-sort.ps1
:sumber
Mathematica, 81 byte
Pendekatan yang sama dengan jawaban TimmyD.
sumber
Python 2,
128116 byteSaya masih merasa pasti ada ruang untuk perbaikan di sini.
sumber
Javascript, 95 byte
sumber
Perl, 40 byte
Termasuk +1 untuk
-p
Jalankan dengan daftar kata-kata di STDIN:
spanisort.pl
sumber