La Mã hóa tiếng Nhật đang chuyển đổi văn bản tiếng Nhật thành các ký tự Latinh. Trong thử thách này, bạn sẽ được cung cấp một chuỗi các ký tự tiếng Nhật làm đầu vào và dự kiến sẽ chuyển đổi chúng thành chuỗi ASCII chính xác.
Những gì bạn sẽ cần biết
Ngôn ngữ Nhật Bản có ba hệ thống chữ viết: hiragana (một đường cong được sử dụng cho các từ ngắn), katakana (một góc được sử dụng cho các âm thanh và các từ mượn từ các ngôn ngữ khác) và kanji (các ký tự dày đặc có nguồn gốc từ tiếng Trung Quốc). Trong thử thách này, chúng tôi sẽ chỉ lo lắng về hiragana.
Có 46 ký tự trong giáo trình hiragana. Mỗi nhân vật đại diện cho một âm tiết. Các ký tự được tổ chức bởi âm đầu tiên (phụ âm) và âm thứ hai (nguyên âm). Các cột theo thứ tự là aiueo
.
: あいうえお
k: かきくけこ
s: さしすせそ
t: たちつてと
n: なにぬねの
h: はひふへほ
m: まみむめも
y: や ゆ よ
r: らりるれろ
w: わ を
N: ん
(nếu bạn sao chép và dán bảng này lưu ý rằng tôi đã sử dụng các khoảng trắng ý thức hệ U + 3000 để xóa khoảng trống y và w)
Vì vậy, ví dụ, と sẽ tạo ra một đầu ra của atome
. Ký tự đầu tiên là a
, thứ hai là to
và thứ ba là me
.
Ngoại lệ
Giống như bất kỳ ngôn ngữ tốt nào, tiếng Nhật cũng có ngoại lệ đối với các quy tắc của nó và bảng hiragana có một số ngôn ngữ. Các ký tự này được phát âm hơi khác so với vị trí của chúng trong bảng sẽ ngụ ý:
: shi
, Không phải si
ち : chi
, không ti
つ : tsu
, không tu
ふ : fu
, khônghu
Đam mê
Từ 'dakuten' có nghĩa là 'dấu bùn': dakuten biến âm thanh thành âm tương đương của chúng (thông thường); ví dụ, ka
biến thành か ゛ga
. Danh sách đầy đủ các thay đổi:
k
→ g
s
→ z
t
→ d
h
→b
Các ngoại lệ cũng thay đổi: し ゛: ji
(hoặc zhi
), không phải zi
ち ゛ : ji
, không di
つ ゛ : dzu
, không du
(ふ hoạt động như bạn mong đợi; đó không phải là ngoại lệ)
Handakuten là một ký tự bổ sung áp dụng cho h
hàng. Nếu được đặt sau một ký tự, nó sẽ thay đổi âm thanh của ký tự thành p
chứ không phải b
.
Cả dakuten và handakuten sẽ được cung cấp dưới dạng các ký tự riêng lẻ. Bạn sẽ không cần phải xử lý các biểu mẫu được sắp xếp sẵn hoặc các ký tự kết hợp.
Nhân vật nhỏ
Cuối cùng, có phiên bản nhỏ của một số nhân vật. Họ sửa đổi các nhân vật đến trước hoặc sau họ.
ゅ ょ
Đây là những hình thức nhỏ ya
, yu
và yo
. Chúng chỉ được đặt sau âm thanh trong i
-column; họ loại bỏ i
và thêm âm thanh của họ. Vì vậy, や biến thành kiya
; ゃ biến thành kya
.
Nếu được đặt sau chi
hoặc shi
(hoặc các hình thức dakuten-ed của họ), thì y
cũng bị loại bỏ. し ゆ là shiyu
; し là shu
.
Điều cuối cùng bạn sẽ phải đối phó là nhỏ tsu
. Nhân đôi phụ âm đi sau nó, bất kể là gì; nó không làm gì khác Chẳng hạn, た là kita
; き っ là kitta
.
Tóm tắt, đầu vào và đầu ra
Chương trình của bạn phải có khả năng phiên âm: 46 hiragana cơ bản, hình thức dakuten và handakuten của họ và sự kết hợp của họ với các ký tự nhỏ.
Hành vi không xác định bao gồm: nhỏ ya
, yu
và yo
không theo sau một ký tự i
, nhỏ tsu
ở cuối chuỗi, dakuten trên một ký tự không bị ảnh hưởng, handakuten trên một p
ký tự không và bất kỳ thứ gì khác không được đề cập trong thông số / giới thiệu ở trên.
Bạn có thể cho rằng tất cả các đầu vào là hợp lệ và chỉ chứa các ký tự tiếng Nhật được đề cập ở trên.
Trường hợp không quan trọng trong đầu ra; bạn cũng có thể thay thế r
bằng l
hoặc một mình n
với m
. Đầu ra có thể có một khoảng trống giữa mỗi âm tiết hoặc không có khoảng trắng nào cả.
Đây là code-golf : mã ngắn nhất tính theo byte thắng.
Các trường hợp thử nghiệm
Nhiều trường hợp thử nghiệm cho từng phần riêng lẻ được đưa ra trong thông số kỹ thuật. Một số trường hợp bổ sung:
ひ ら か → hiragana
か た か な → katakana
゛ い て さ い は ゛ ん → daigyakutensaiban
゜ ろ く ゛ ら み ん く ゛ は ゜ す ゛ る こ う と ゛ こ ゛ る ふ → puroguramingupazurucoudogorufu
゛ ん → ganbatte
Ghi chú
Tôi không biết nhiều tiếng Nhật ngoài những gì tôi đã viết ở đây. Xin vui lòng cho tôi biết nếu tôi đã thực hiện bất kỳ sai lầm.
Ban đầu tôi cũng dự định bao gồm katakana (vì vậy trường hợp kiểm tra phiên âm tiếng Anh của tôi có thể chính xác hơn một chút ), nhưng điều đó sẽ là quá nhiều cho một thử thách golf mã.
Tên Unicode bao gồm phiên âm của từng ký tự riêng lẻ, nhưng không có ngoại lệ. Điều này có thể hoặc có thể không hữu ích cho bạn.
Cảm ơn squeamishossifrage đã sửa hai lỗi chính tả!
Tôi xin lỗi nếu điều này quá dài; Tôi đã cố gắng phù hợp với hầu hết các quirks của hiragana vào thử thách nhưng một số thứ (như hiragana chỉ nguyên âm nhỏ, thay đổi n thành m trước một số phụ âm và dấu lặp lại) phải được cắt để giữ cho thử thách có thể kiểm soát được.
Tôi hoàn toàn không xin lỗi vì danh hiệu này. Nó là một kiệt tác.
っし
có sshi
hay shshi
?
I'm not at all sorry for the title. It's a masterpiece.
Downvote
きっった
gì?