일본어 로마자는 일본어 텍스트를 라틴 문자로 변환합니다. 이 과제에서는 입력으로 일본어 문자열이 제공되며 올바른 ASCII 문자열로 변환해야합니다.
알아야 할 사항
일본어에는 히라가나 (짧은 단어에 사용되는 매력적인 단어), 가타카나 (소리와 다른 언어에서 빌려온 단어에 사용되는 각도) 및 한자 (원래 중국어에서 나오는 짙은 문자)의 세 가지 쓰기 시스템이 있습니다. 이 도전에서 우리는 히라가나에 대해서만 걱정할 것입니다.
히라가나 음절에는 46 개의 문자가 있습니다. 각 문자는 음절을 나타냅니다. 문자는 첫 번째 소리 (자음)와 두 번째 소리 (모음)로 구성됩니다. 순서대로 열은 aiueo
입니다.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(이 표를 복사하여 붙여 넣은 경우 표의 문자 공간 U + 3000을 사용하여 y와 w의 간격을 두었다는 점에 유의하십시오)
예를 들어, あ と め는의 출력을 생성해야합니다 atome
. 첫 번째 문자는 a
이고 두 번째 문자는 이며 세 번째 문자는 to
입니다 me
.
예외
다른 언어와 마찬가지로 일본어에는 규칙에 예외가 있으며 히라가나 테이블에는 몇 가지가 있습니다. 이 문자들은 표에서의 위치와 약간 다르게 발음됩니다.
し : shi
, not si
ち : chi
, not ti
つ : tsu
, not tu
ふ : fu
, 아닙니다hu
다 쿠텐 ゛
'다 쿠텐'이라는 단어는 '진흙 자국'을 의미합니다. 예를 들어, かka
는 か ゛로 바뀝니다 ga
. 변경 사항의 전체 목록 :
k
→ g
s
→ z
t
→ d
h
→b
예외도 변경됩니다. し ゛ : ji
(또는 zhi
), not zi
ち ゛ : ji
, not di
つ ゛ : dzu
, not du
(ふ ゛은 예상대로 작동하지만 예외는 아닙니다)
Handakuten은 행에 적용되는 추가 문자 ゜입니다 h
. 캐릭터 뒤에 배치하면 캐릭터의 소리가 p
아닌로 변경 b
됩니다.
dakuten과 handakuten은 모두 개별 문자로 제공됩니다. 미리 작성된 양식이나 결합 문자를 다룰 필요는 없습니다.
작은 문자
마지막으로 일부 문자의 작은 버전이 있습니다. 그들은 앞뒤에 오는 문자를 수정합니다.
ゃ ゅ ょ
이들의 작은 형태이다 ya
, yu
하고 yo
. 그것들은- i
컬럼 에서 소리 후에 만 배치됩니다 . 그들은를 제거 i
하고 소리를 추가합니다. 그래서 き や는 kiya
; き ゃ가로 변합니다 kya
.
chi
또는 shi
(또는 해당 양식) 뒤에 배치하면 y
역시 제거됩니다. し ゆ는 shiyu
; し ゅ는 shu
입니다.
마지막으로 다루어야 할 것은 작은 것 tsu
입니다. っ 무슨 일이 있어도 뒤에 오는 자음을 두 배로합니다. 다른 것은 없습니다. 예를 들어, き た는 kita
; き っ た는 kitta
입니다.
요약, 입력 및 출력
귀하의 프로그램은 46 가지 기본 히라가나, 언어 및 수기 양식, 작은 문자와의 조합으로 음역 할 수 있어야합니다.
정의되지 않은 동작이 포함됩니다 : 작은 ya
, yu
그리고 yo
이 아니라와 문자 다음에 i
작은 tsu
비에 handakuten 영향을받지 않은 문자에 탁점 문자열의 끝에, p
문자, 아무것도가 다른 위의 사양 / 소개에서 언급되지.
모든 입력이 유효하고 위에서 언급 한 일본어 문자 만 포함한다고 가정 할 수 있습니다.
출력은 문제가되지 않습니다. 당신은 또한 대체 할 수 r
와 함께 l
또는 혼자 n
와 m
. 출력은 모든 음절 사이에 공백이 있거나 공백이 없을 수 있습니다.
이것은 코드 골프입니다 : 바이트 단위의 최단 코드가 이깁니다.
테스트 사례
각 개별 부품에 대한 많은 테스트 사례가 사양에 나와 있습니다. 일부 추가 사례 :
ひ ら か ゛ な → hiragana
か た か な → katakana
た ゛ い き ゛ ゃ く て ん さ い は ゛ ん → daigyakutensaiban
ふ ゜ ろ く ゛ ら み ん く ゛ は ゜ す ゛ る こ う と ゛ こ ゛ る ふ → puroguramingupazurucoudogorufu
か ゛ ん ほ ゛ っ て → ganbatte
노트
나는 여기에 쓴 것 외에는 일본어를 잘 모른다. 실수를 한 경우 알려주십시오.
나는 원래 카타카나도 포함시킬 계획 이었기 때문에 (영어 음역 테스트 사례가 약간 더 정확할 수 있음 ), 코드 골프 도전에는 너무 클 것입니다.
유니 코드 이름에는 각 문자의 음역이 개별적으로 포함되지만 예외는 없습니다. 도움이 될 수도 있고 아닐 수도 있습니다.
두 오타 수정에 대한 squeamishossifrage 덕분에!
이것이 너무 길면 죄송합니다. 나는 히라가나의 기발한 부분을 도전에 맞추려고 시도했지만 작은 모음 전용 히라가나, 일부 자음 앞에서 n을 m으로 변경하고 반복 마크와 같은 것들을 도전을 관리하기 위해 잘라야했습니다.
제목이 미안하지 않습니다. 걸작입니다.
っし
할 sshi
나 shshi
?
I'm not at all sorry for the title. It's a masterpiece.
하향식
きっった
합니까?