Romanizacja języka japońskiego polega na konwersji japońskiego tekstu na znaki łacińskie. W tym wyzwaniu otrzymasz ciąg znaków japońskich jako dane wejściowe i będziesz musiał przekonwertować je na prawidłowy ciąg ASCII.
Co musisz wiedzieć
Język japoński ma trzy systemy pisania: hiragana (krzywoliniowy używany do krótkich słów), katakana (kąt-y używany do dźwięków i słów zapożyczonych z innych języków) oraz kanji (gęste postacie pierwotnie z chińskiego). W tym wyzwaniu będziemy się martwić tylko hiraganą.
W sylabie hiragana jest 46 znaków. Każda postać reprezentuje sylabę. Znaki są uporządkowane według pierwszego dźwięku (spółgłoski) i drugiego dźwięku (samogłoski). Kolumny w kolejności są aiueo
.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(jeśli skopiujesz i wkleisz tę tabelę, zauważ, że użyłem spacji ideograficznych U + 3000 do spacji y i w)
Na przykład あ と め powinien dać wynik atome
. Pierwszym znakiem jest a
, drugim jest to
, a trzecim jest me
.
Wyjątki
Jak każdy dobry język, japoński ma wyjątki od swoich zasad, a tabela hiragana ma kilka. Te znaki są wymawiane nieco inaczej niż ich położenie w tabeli oznaczałoby:
し: shi
, nie si
ち: chi
, nie ti
つ: tsu
, nie tu
ふ: fu
, niehu
Dakuten ゛
Słowo „dakuten” oznacza „zabłocony znak”: dakuten zamienia dźwięki w ich dźwięczne odpowiedniki (zwykle); na przykład かka
zmienia się w か ゛ga
. Pełna lista zmian:
k
→ g
s
→ z
t
→ d
h
→b
Zmieniają się także wyjątki: し ゛: ji
(lub zhi
), nie zi
ち ゛: ji
, nie di
つ ゛: dzu
, nie du
(ふ ゛ działa tak, jak można się spodziewać; nie jest wyjątkiem)
Handakuten to dodatkowy znak ゜, który dotyczy h
wiersza. Umieszczony za postacią zmienia dźwięk postaci na p
zamiast b
.
Zarówno dakuten, jak i handakuten zostaną podane jako indywidualne postacie. Nie będziesz musiał radzić sobie ze wstępnie złożonymi formami lub łączącymi się postaciami.
Małe postacie
Wreszcie istnieją małe wersje niektórych postaci. Modyfikują postacie, które pojawiają się przed nimi lub po nich.
ゃ ゅ ょ
Są to małe formy ya
, yu
oraz yo
. Są one umieszczane tylko po dźwiękach w i
kolumnie -kolumna; usuwają i
i dodają dźwięk. Tak więc き や zamienia się w kiya
; き ゃ zamienia się w kya
.
Jeśli zostanie umieszczony po chi
lub shi
(lub w ich postaciach dakutenowych), również y
zostanie usunięty. し ゆ oznacza shiyu
; し ゅ jest shu
.
Ostatnią rzeczą, z którą musisz się zmierzyć, jest mała tsu
. っ podwaja spółgłoskę, która następuje po nim, bez względu na wszystko; nic więcej nie robi. Na przykład き た jest kita
; き っ た jest kitta
.
Podsumowanie, dane wejściowe i dane wyjściowe
Twój program musi mieć umiejętność transliteracji: 46 podstawowych hiraganów, ich formy dakuten i handakuten oraz kombinacje z małymi postaciami.
Nieokreślone zachowanie obejmuje: mały ya
, yu
a yo
nie po znaku z i
, mały tsu
na końcu łańcucha, dakuten na nietkniętym znaku, handakuten na niebędącym p
postacią i wszystko inne nie wymienione w powyższej specyfikacji / wprowadzeniu.
Możesz założyć, że wszystkie dane wejściowe są prawidłowe i zawierają tylko znaki japońskie wymienione powyżej.
Wielkość liter nie ma znaczenia; można również wymienić r
się l
lub samotny n
z m
. Dane wyjściowe mogą zawierać jedną spację między każdą sylabą lub nie zawierać spacji.
To jest code-golf : wygrywa najkrótszy kod w bajtach.
Przypadki testowe
Wiele przypadków testowych dla każdej części podano w specyfikacji. Niektóre dodatkowe przypadki:
ひ ら か ゛ な → hiragana
か た か な → katakana
た ゛ い き ゛ ゃ く て ん さ い は ゛ ん → daigyakutensaiban
ふ ゜ ろ く ゛ ら み ん く ゛ は ゜ す ゛ る こ う と ゛ こ ゛ る ふ → puroguramingupazurucoudogorufu
か ゛ ん ほ ゛ っ て → ganbatte
Notatki
Poza tym, co tu napisałem, niewiele znam japońskiego. Daj mi znać, jeśli popełniłem jakieś błędy.
Początkowo planowałem również dołączyć katakana (więc mój test na angielską transliterację może być nieco dokładniejszy), ale byłoby to zbyt wiele dla wyzwania golfowego.
Nazwy Unicode obejmują transliterację każdego znaku osobno, ale bez wyjątków. To może, ale nie musi być pomocne.
Dziękujemy za pisanie o poprawianiu dwóch literówek!
Przepraszam, jeśli to jest za długie; Próbowałem dopasować większość dziwactw hiragana do wyzwania, ale niektóre rzeczy (takie jak mała hiragana tylko samogłoska, zmiana n na m przed niektórymi spółgłosek i znak powtórzenia) musiały zostać wycięte, aby wyzwanie było wykonalne.
W ogóle nie jest mi przykro z powodu tytułu. To arcydzieło.
っし
być sshi
lub shshi
?
I'm not at all sorry for the title. It's a masterpiece.
Downvoted
きっった
?