Романизация японского языка - это преобразование японского текста в латинские символы. В этом вызове вам будет предоставлена строка японских символов в качестве входных данных, и ожидается, что они будут преобразованы в правильную строку ASCII.
Что нужно знать
В японском языке есть три системы письма: хирагана (соблазнительная, используемая для коротких слов), катакана (угловая, используемая для звуков и слов, заимствованных из других языков) и кандзи (плотные символы, первоначально взятые из китайского языка). В этом вызове мы будем беспокоиться только о хирагане.
В программе хирагана 46 символов. Каждый символ представляет собой слог. Символы организованы по первому звуку (согласный) и второму звуку (гласный). Столбцы в порядке aiueo.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(если вы скопируете и вставите эту таблицу, обратите внимание, что я использовал идеографические пробелы U + 3000 для разнесения y и w)
Так, например, あ と め должен выдавать результат atome. Первый символ есть a, второй есть to, а третий есть me.
Исключения
Как и любой хороший язык, у японцев есть исключения из правил, а в таблице хирагана есть несколько. Эти символы произносятся немного иначе, чем подразумевает их расположение в таблице:
し: shi, не si
ち: chi, не ti
つ: tsu, не tu
ふ: fu, неhu
Дакутен ゛
Слово «дакутен» означает «грязный знак»: дакутен превращает звуки в их озвученные эквиваленты (обычно); например, かkaпревращается в か ゛ga. Полный список изменений:
k→ g
s→ z
t→ d
h→b
Меняются и исключения: し ゛: ji(или zhi), а не zi
ち ゛: ji, не di
つ ゛: dzu, не du
(ふ ふ действует так, как вы ожидаете; это не исключение)
Handakuten является дополнительным символом ゜, который применяется к hстроке. Если поместить после персонажа, он меняет звук персонажа на, pа не b.
И дакутен, и хандакутен будут даны как отдельные персонажи. Вам не нужно иметь дело с заранее составленными формами или комбинирующими символами.
Маленькие персонажи
Наконец, есть небольшие версии некоторых персонажей. Они изменяют символы, которые идут до или после них.
ゃ ゅ ょ
Это небольшие формы ya, yuи yo. Они помещаются только после звуков в iколонке; они удаляют iи добавляют свой звук. Итак, や や превращается в kiya; ゃ ゃ превращается в kya.
Если поместить после chiили shi(или их dakuten-ed формы), yтоже удаляется. ゆ ゆ есть shiyu; ゅ ゅ есть shu.
Последнее, с чем вам придется иметь дело, это маленький tsu. っ удваивает согласный, который следует за ним, несмотря ни на что; больше ничего не делает Например, た た есть kita; た っ た есть kitta.
Сводка, ввод и вывод
Ваша программа должна быть способна транслитерировать: 46 основных хирагана, их формы дакутен и хандакутен и их комбинации с маленькими символами.
Неопределенное поведение включает в себя: small ya, yuа yoне после символа с ismall tsuв конце строки, dakuten для незатронутого символа, handakuten для не pсимвольного и все остальное, не упомянутое в приведенной выше спецификации / введении.
Вы можете предположить, что все входные данные верны и содержат только японские символы, упомянутые выше.
Дело не имеет значения в выводе; Вы можете также заменить rс lили одиночкой nс m. Вывод может иметь либо один пробел между каждым слогом, либо не иметь пробелов вообще.
Это код-гольф : выигрывает самый короткий код в байтах.
Тестовые случаи
Многие тестовые случаи для каждой отдельной части приведены в спецификации. Некоторые дополнительные случаи:
ひ ら か ゛ な → hiragana
な た か な → katakana
ん ゛ い き ゛ ゃ く て ん い は は ん → daigyakutensaiban
ふ ゜ ろ く ゛ ら ん ん ゛ は ゜ ゜ る る と ゛ ゛ ふ ふ ふ → puroguramingupazurucoudogorufu
て ゛ ん ほ ゛ っ て → ganbatte
Заметки
Я не знаю много японского, кроме того, что я здесь написал. Пожалуйста, дайте мне знать, если я сделал какие-либо ошибки.
Первоначально я планировал включить и катакану (так что мой контрольный пример транслитерации английского языка мог бы быть немного более точным), но это было бы слишком много для задачи игры в гольф кода.
Имена Unicode включают транслитерацию каждого символа в отдельности, но без исключений. Это может или не может быть полезным для вас.
Спасибо squeamishossifrage за исправление двух опечаток!
Извините, если это слишком долго; Я попытался вписать большинство пристрастий хираганы в вызов, но некоторые вещи (например, маленькая хирагана, состоящая только из гласных, изменение n на m перед некоторыми согласными и знак повторения) пришлось сократить, чтобы сохранить управляемость задачи.
Я совсем не сожалею о названии. Это шедевр.
っしбыть sshiили shshi?
I'm not at all sorry for the title. It's a masterpiece.Downvoted
きっった?