Романизация японского языка - это преобразование японского текста в латинские символы. В этом вызове вам будет предоставлена строка японских символов в качестве входных данных, и ожидается, что они будут преобразованы в правильную строку 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
не после символа с i
small 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
きっった
?