Bagi mereka yang menginginkan lebih banyak tantangan daripada urutan abjad Spanyol yang lama , mari kita lihat bagaimana alfabet Hungaria dipesan.
a, á, b, c, cs, d, dz, dzs, e, é, f, g, gy, h, i, í, j, k, l, ly, m, n, ny, o, ó, ö, ő, p, q, r, s, sz, t, ty, u, ú, ü, ű, v, w, x, y, z, zs
sebenarnya, q
, w
, x
dan y
tidak digunakan dalam kata-kata Hungaria, tetapi mereka termasuk untuk kata-kata pinjaman dan nama asing. Karakter beraksen asing yang bukan bagian dari alfabet Hongaria (seperti ñ
), memiliki prioritas yang sama dengan yang tidak beraksen, tetapi kami mengabaikannya untuk tantangan ini.
Aturannya, diringkas:
- Digraphs (
cs
,,sz
dll.) Dan trigraph (dzs
) dianggap sebagai huruf tersendiri.
cudar cukor cuppant csalit csata
- Jika digraf atau trigraph yang sama muncul dua kali secara langsung setelah satu sama lain dalam sebuah kata, mereka ditulis dengan cara yang disederhanakan:
ssz
alih- alihszsz
,ddzs
alih-alihdzsdzs
tetapi untuk urutan alfabet, urutan yang tidak disederhanakan digunakan. Misalnyakasza
<kaszinó
<kassza
, karenakassza
digunakan sebagaik
+a
+sz
+sz
+a
demi pemesanan. Kadang-kadang Anda dapat menemukan versi yang tidak dikontrak dalam sebuah kata, seandainya ada kata majemuk.
kasza kaszinó kassza kaszt nagy naggyá nagygyakorlat naggyal nagyít
- kapitalisasi tidak masalah, dengan pengecualian ketika dua kata akan persis sama tanpa kapitalisasi, dalam hal huruf kecil memiliki prioritas
jácint Jácint Zoltán zongora
- Versi pendek dan panjang vokal beraksen memiliki prioritas yang sama (
a - á
,e -é
,i - í
,o - ó
,ö - ő
,u - ú
ü - ű
), dengan satu pengecualian: jika dua kata lain akan persis sama, vokal pendek memiliki prioritas di atas vokal panjang. Perhatikan, bahwa vokal dengan umlaut (ö
danü
) adalah karakter yang sepenuhnya berbeda dario
danu
.
Eger egér író iroda irónia kerek kerék kérek szúr szül
- Tanda hubung atau spasi (misalnya, dalam kata majemuk, nama, dll.) Sepenuhnya diabaikan
márvány márványkő márvány sírkő Márvány-tenger márványtömb
Tugas
Program / fungsi Anda menerima string, terdiri dari karakter dari alfabet Hongaria (huruf kecil dan huruf besar), tetapi string mungkin berisi spasi atau tanda hubung. Demi kesederhanaan, tanda minus (ASCII 45) dapat digunakan sebagai tanda hubung. Perhatikan bahwa beberapa karakter (seperti itu ő
) bukan bagian dari ASCII. Anda dapat menggunakan penyandian yang Anda inginkan, jika mendukung semua karakter yang diperlukan.
Anda harus memesan garis dengan benar dan menampilkan / mengembalikan hasilnya.
Anda dapat menggunakan subhimpunan acak dari contoh di atas untuk pengujian.
EDIT:
Tolong jangan gunakan built-in atau cara lain yang sudah tahu urutan abjad Hongaria dengan sendirinya. Itu akan membuat kompetisi tidak ada gunanya, dan mengambil semua tantangan dari menemukan ekspresi reguler terbaik atau trik kode golf terbaik.
EDIT2:
Untuk menghapus klarifikasi yang ditanyakan oleh isaacg: "dua string yang hanya berbeda dengan huruf kapital dan vokal panjang vs pendek, tetapi berbeda dalam kedua cara": Meskipun tidak ada aturan dalam dokumen resmi yang secara eksplisit membahas pertanyaan ini, sebuah contoh ditemukan dalam beberapa poin panjangnya. dari vokal yang lebih penting daripada kapitalisasi.
malacsült
ataunyílászáró
. Saya ingin tahu apakah ada (tetapi Anda perlu kosakata untuk memeriksanya, yang mungkin bukan bagian dari tantangan ini)Jawaban:
Perl, 250
Termasuk +11 untuk
-Mutf8 -CS
.Menggunakan idiom menghias-sort-undecorate (AKA Schwartzian Transform ), dan sortasi bertingkat † , di mana levelnya adalah:
Secara internal,
␜
(ASCII 0x1C Field Separator - yang nilainya kurang dari karakter apa pun dalam alfabet untuk tantangan ini) digunakan sebagai pemisah level.Implementasi ini memiliki banyak keterbatasan, di antaranya:
Versi yang diperluas:
†. Beberapa algoritma collation multi-level yang terkenal adalah Unicode Collation Algorithm (UCA, Unicode UTS # 10) , ISO 14651 (tersedia di situs ISO ITTF ) bagian LC_COLLATE di ISO TR 30112 (draft tersedia di ISO / IEC JTC1 / Rumah SC35 / WG5 ) yang usang ISO / IEC TR 14652 (tersedia di rumah ISO / IEC JTC1 / SC22 / WG20 ) dan LC_COLLATE di POSIX.
‡. Melakukan ini dengan benar akan membutuhkan kamus. ICU memperlakukan kelompok bermodal aneh sebagai non-kontraksi / non-digraf / non-trigraph, misalnya: ccS < 3 CcS < 3 c Cs < 3 c CS < 3 C CS < 3 cS < 3 cs < 3 Cs < 3 CS < 3 ccs < 3 Ccs < 3 CCS
sumber
Java 8, 742 byte
Bisa mengurangi 3 byte lain penamaan fungsi,
s
bukansort
atau 16 byte lain jika tidak menghitung definisi kelas.Dapat digunakan seperti ini:
Test-suite:
menghasilkan
Tidak Disatukan:
Saya menggunakan
List
tipe -Java danorder()
-fungsi itu, tetapi komparator semua milik saya.sumber
<String>
dan menyimpan beberapa karakter dengan mengorbankan beberapa peringatan?Object
sebagai tipe a dan b kalau begitu. Saya mungkin bisa pergi mendefinisikan ekstensi kelas-generikString
, meskipun. Saya juga tidak berharap memiliki kode terpendek. ;-)Python 3, 70
Disimpan 8 byte berkat shooqie.
Saya suka Python. : D
Mengharapkan daftar string.
sumber
from locale import*
menghemat banyak byte