Das Ziel
Sortieren Sie die Zeichen anhand einer Reihe von Hangul-Silben in der nordkoreanischen Wörterbuchreihenfolge.
Einführung in Hangul-Silben
Hangul (한글) ist das koreanische Schriftsystem, das von Sejong dem Großen erfunden wurde. Hangul-Silben werden im Unicode-Punkt U + AC00 - U + D7A3 zugeordnet. Eine Hangul-Silbe besteht aus einem Anfangskonsonanten, einem Vokal und einem optionalen Endkonsonanten.
Die Anfangskonsonanten sind:
ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
Die Vokale sind:
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
Die Endkonsonanten sind:
(none) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
Zum Beispiel 뷁
hat Anfangskonsonant ㅂ
, Vokal ㅞ
und Endkonsonant ㄺ
.
Südkoreanische Wörterbuchreihenfolge
Die Konsonanten und Vokale oben sind in der Reihenfolge des südkoreanischen Wörterbuchs sortiert. Die Silben werden erstens nach Anfangskonsonanten, zweitens nach Vokalen und schließlich nach (optionalen) Endkonsonanten sortiert.
Der Unicode-Block für Hangul-Silben enthält alle Konsonanten / Vokal-Kombinationen und ist vollständig in der südkoreanischen Wörterbuchreihenfolge sortiert.
Der Unicode-Block ist hier zu sehen , und die ersten 256 Zeichen werden zur Veranschaulichung gezeigt:
가각 갂 갃간 갅갆 갇갈 갉갊 갋갌 갍갎 갏감 갑값 갓갔 강갖 갗갘 같갚 갛개 객갞 갟갠 갡갢 갣갤 갥갦 갩갪 갫갬 갭갮 갱갲 갳갴 갵갶 갷갸 갹갺 갻갼 갿걀 걡걢 걡걢 걡걢 걡걢 걡걢 걣걤 걥걦 걧걨 걩걪 걫걬 걭걮 걯거 걱걲 걳건 걵걶 걷걸 걹걺 걻걼 걽걾 걿검 겁겂 것 겄겅 겆겇 겈겉 게겍 겎겏 겐겑 겒겓 겔겕 겖겗 겘겙 겜겝 겞겟 겢겣 겤겥 곂곃 겨격 겪겫 곂곃 계곅 곆곇 곈곉 곊곋 곌곍 곎곏 곐곑 곒곓 곔곕 곖곗 곘곙 곚곛 곜곝 곞곟 고곡 곢곣 곤곥 곦곧 골곩 곪곫 곬곭 곬곭 곰곱 곲곳
Zum Beispiel der folgende Satz (ohne Leerzeichen und Satzzeichen):
키스의고유조건은입술끼리만나야하고특별한기술은필요치않다
ist sortiert nach:
건고고기끼나다리만별술술스않야요유은은의입조치키특필하한
Wenn sich die Zeichenfolge in C ++ befindet std::wstring
, ist die obige Sortierung einfach std::sort
.
Nordkoreanische Wörterbuchreihenfolge
Das nordkoreanische Wörterbuch hat eine andere Konsonanten- / Vokalreihenfolge.
Die Anfangskonsonanten sind wie folgt sortiert:
ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ
Die Vokale sind wie folgt sortiert:
ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ
Die Endkonsonanten sind wie folgt sortiert:
(none) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ
Wie im Süden werden die Silben erstens nach Anfangskonsonanten, zweitens nach Vokalen und schließlich nach (optionalen) Endkonsonanten sortiert.
Wenn der obige Satz gegeben ist, muss die Ausgabe sein:
건고고기나다리만별술술스조치키특필하한끼않야요유은은입의
Regeln
Wenn die Eingabe ein Zeichen enthält, das nicht in U + AC00 - U + D7A3 enthalten ist, ist dies nicht der Fall .
Da dies ein Code-Golf ist, gewinnt der kürzeste Code in Bytes.
가까나다따라마바빠사싸아자짜차카타파
(alle Anfangskonsonanten),가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기
(alle Vokale),가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
(alle nachfolgenden Konsonanten).Antworten:
05AB1E ,
474538 BytesProbieren Sie es online aus!
quelle
JavaScript (ES6),
150 148137 Byte10 Bytes dank @Grimy gespeichert
E / A: Arrays von Zeichen.
Probieren Sie es online aus!
Hangul-Silben teilen
Kommentiert
quelle
Holzkohle , 80 Bytes
Probieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Erläuterung: Generiert alle 11172 Hangul-Silben in nordkoreanischer Wörterbuchreihenfolge und überprüft, welche in der Eingabe vorhanden sind (damit alle anderen Zeichen gelöscht werden; auch etwas langsam: dauert bei TIO 18 Sekunden). Erläuterung:
Schleife über die komprimierte Zeichenfolge
acdfghjmopqrsbeiknl
. Dies ist die Liste der südkoreanischen Anfangskonsonanten (nummeriert mit dem westlichen Kleinbuchstaben) in nordkoreanischer Wörterbuchreihenfolge.Schleife über die komprimierte Zeichenfolge
02468cdhik1357bgj9eaf
. Dies ist die Liste der südkoreanischen Vokale (nummeriert mit ASCII-Ziffern und Kleinbuchstaben) in nordkoreanischer Wörterbuchreihenfolge.Schleife über die komprimierte Zeichenfolge
013456789abcdefghijlmnopqr2k
. Dies ist die Liste der südkoreanischen Endkonsonanten (mit derselben Nummerierung wie die Vokale) in der nordkoreanischen Wörterbuchreihenfolge.Verketten Sie den Vokal und den Endkonsonanten und dekodieren Sie ihn als Basiszahl 28, und addieren Sie dann das 588-fache des Anfangsvokals und 0xAC00. Drucken Sie alle Zeichen aus der Eingabe aus, deren Ordnungszahl dies ist.
quelle
\xFF
in der Codepage von Charcoal.