Bei der Umschrift auf Japanisch wird japanischer Text in lateinische Zeichen umgewandelt. In dieser Herausforderung erhalten Sie eine Zeichenfolge mit japanischen Zeichen als Eingabe und müssen diese in die richtige ASCII-Zeichenfolge konvertieren.
Was Sie wissen müssen
Die japanische Sprache hat drei Schriftsysteme: Hiragana (das kurvige für kurze Wörter), Katakana (das Winkel-Y-Schriftsystem für Laute und Wörter, die aus anderen Sprachen entlehnt wurden) und Kanji (die dichten Schriftzeichen, die ursprünglich aus dem Chinesischen stammen). Bei dieser Herausforderung werden wir uns nur um Hiragana kümmern.
Die Hiragana-Silbenschrift enthält 46 Zeichen. Jedes Zeichen steht für eine Silbe. Die Zeichen sind nach erstem Ton (Konsonant) und zweitem Ton (Vokal) organisiert. Die Spalten in der Reihenfolge sind aiueo
.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(Wenn Sie diese Tabelle kopieren und einfügen, beachten Sie, dass ich ideografische Leerzeichen U + 3000 verwendet habe, um y und w zu löschen.)
So sollte beispielsweise あ あ と eine Ausgabe von erzeugen atome
. Das erste Zeichen ist a
, das zweite ist to
und das dritte ist me
.
Ausnahmen
Wie jede gute Sprache hat Japanisch Ausnahmen von seinen Regeln und die Hiragana-Tabelle hat mehrere. Diese Zeichen werden geringfügig anders ausgesprochen als es die Position in der Tabelle implizieren würde:
し: shi
, nicht si
ち: chi
, nicht ti
つ: tsu
, nicht tu
ふ: fu
, nichthu
Dakuten ゛
Das Wort "Dakuten" bedeutet "Schlammfleck": Das Dakuten verwandelt Töne (normalerweise) in ihre stimmhaften Entsprechungen. Zum Beispiel wird かka
zu か かga
. Eine vollständige Liste der Änderungen:
k
→ g
s
→ z
t
→ d
h
→b
Auch die Ausnahmen ändern sich: し し: ji
(oder zhi
), nicht zi
ち ち: ji
, nicht di
つ つ: dzu
, nicht du
(ふ ふ verhält sich wie erwartet; es ist keine Ausnahme)
Das handakuten ist ein zusätzliches Zeichen ゜, das für die h
Zeile gilt. Wenn es nach einem Zeichen platziert wird, ändert es den Klang des Zeichens in p
anstatt b
.
Sowohl das Dakuten als auch das Handakuten werden als einzelne Zeichen angegeben. Sie müssen sich nicht mit vorkompositionierten Formularen oder kombinierten Zeichen befassen.
Kleine Charaktere
Schließlich gibt es kleine Versionen einiger Charaktere. Sie ändern Zeichen, die vor oder nach ihnen stehen.
ゃ ゃ ゅ
Dies sind die kleinen Formen ya
, yu
und yo
. Sie werden nur nach Tönen in der i
-Säule platziert. sie entfernen das i
und fügen ihren Ton hinzu. Also verwandelt sich き き in kiya
; き き verwandelt sich in kya
.
Wenn sie nach chi
oder shi
(oder ihren dakutenhaltigen Formen) platziert werden, werden sie ebenfalls y
entfernt. し し ist shiyu
; し し ist shu
.
Das Letzte, womit Sie sich befassen müssen, ist das Kleine tsu
. っ verdoppelt den Konsonanten, der danach kommt, egal was passiert; es macht nichts anderes. Zum Beispiel ist き きkita
; き き っ ist kitta
.
Zusammenfassung, Eingabe und Ausgabe
Ihr Programm muss in der Lage sein, die 46 Hiragana-Grundformen, ihre Dakuten- und Handakutenformen und ihre Kombinationen mit kleinen Buchstaben zu transkribieren.
Undefiniertes Verhalten beinhaltet: klein ya
, yu
und yo
nicht nach einem Charakter mit i
kleinen tsu
am Ende eines Strings, dakuten auf einem nicht betroffenen Charakter, auf einem nicht handakuten p
Charakter, und alles , was nicht in der oben spec / Einleitung erwähnt.
Sie können davon ausgehen, dass alle Eingaben gültig sind und nur die oben genannten japanischen Zeichen enthalten.
Groß- / Kleinschreibung spielt bei der Ausgabe keine Rolle. Sie können auch r
mit l
oder einsam n
mit ersetzen m
. Die Ausgabe kann entweder ein Leerzeichen zwischen jeder Silbe oder gar kein Leerzeichen enthalten.
Das ist Code-Golf : Der kürzeste Code in Bytes gewinnt.
Testfälle
Viele Testfälle für jedes einzelne Teil sind in der Spezifikation angegeben. Einige zusätzliche Fälle:
ひ ひ ら ゛ ゛ → hiragana
か か か か → katakana
. た ゛ い き ゛ く て ん さ い は ん → daigyakutensaiban
. ふ ゜ ろ く ゛ ら.. ゛ は ゜ ふ ふ → puroguramingupazurucoudogorufu
か か ゛ ん ほ ゛ っ → ganbatte
Anmerkungen
Ich kann nicht viel Japanisch außer dem, was ich hier geschrieben habe. Bitte lassen Sie mich wissen, wenn ich Fehler gemacht habe.
Ursprünglich plante ich, auch Katakana einzubeziehen (mein Testfall für die englische Transliteration könnte also etwas genauer sein), aber das wäre zu viel für eine Code-Golf-Herausforderung.
Die Unicode-Namen enthalten die Transliteration jedes Zeichens einzeln, jedoch ohne Ausnahmen. Dies kann für Sie hilfreich sein oder auch nicht.
Danke an squeamishossifrage für die Korrektur von zwei Tippfehlern!
Es tut mir leid, wenn das zu lang ist. Ich habe versucht, die meisten Macken von Hiragana in die Herausforderung einzubauen, aber einige Dinge (wie Hiragana nur mit kleinem Vokal, Änderung von n zu m vor einigen Konsonanten und das Wiederholungszeichen) mussten abgeschnitten werden, um die Herausforderung zu bewältigen.
Der Titel tut mir überhaupt nicht leid. Es ist ein Meisterwerk.
っし
sein sshi
oder shshi
?
I'm not at all sorry for the title. It's a masterpiece.
Downvoted
きっった
?