Mục tiêu
Đưa ra một chuỗi các âm tiết Hangul, sắp xếp các ký tự theo thứ tự từ điển của Bắc Triều Tiên.
Giới thiệu về âm tiết Hangul
Hangul (한글) là hệ thống chữ viết của Hàn Quốc được phát minh bởi Sejong Đại đế. Các âm tiết Hangul được phân bổ theo điểm Unicode U + AC00 - U + D7A3. Một âm tiết Hangul bao gồm một phụ âm đầu tiên, một nguyên âm và một phụ âm cuối tùy chọn.
Các phụ âm đầu tiên là:
ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ
Nguyên âm là:
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㅣ
Phụ âm cuối cùng là:
(none) ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅆ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
Ví dụ, 뷁
có phụ âm đầu ㅂ
, nguyên âm ㅞ
và phụ âm cuối ㄺ
.
Từ điển tiếng Hàn
Các phụ âm và nguyên âm ở trên được sắp xếp theo thứ tự từ điển của Hàn Quốc. Các âm tiết được sắp xếp trước tiên bởi các phụ âm đầu tiên, thứ hai là nguyên âm và cuối cùng là phụ âm cuối (tùy chọn).
Khối Unicode cho các âm tiết Hangul chứa mọi kết hợp phụ âm / nguyên âm và hoàn toàn được sắp xếp theo thứ tự từ điển của Hàn Quốc.
Khối Unicode có thể được nhìn thấy ở đây và 256 ký tự đầu tiên được hiển thị cho mục đích minh họa:
가각 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 갂 걣걤 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 걥걦 계곅 곆곇 곈곉 곊곋 곌곍 곎곏 곐곑 곒곓 곔곕 곖곗 곘곙 곚곛 곜곝 고곡 곢곣 곤곥
Ví dụ: câu sau (không có dấu cách và dấu chấm câu):
키스의고유조건은입술끼리만나야하고특별한기술은필요치않다
được sắp xếp để:
건고고기끼나다리만별술술스않야요유은은의입조치키특필하한
Trong C ++, nếu chuỗi nằm trong std::wstring
, việc sắp xếp ở trên là đơn giản std::sort
.
Thứ tự từ điển Bắc Triều Tiên
Từ điển Bắc Triều Tiên có thứ tự phụ âm / nguyên âm khác nhau.
Các phụ âm đầu tiên được sắp xếp như sau:
ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㄸ ㅃ ㅆ ㅉ ㅇ
Các nguyên âm được sắp xếp như sau:
ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ ㅐ ㅒ ㅔ ㅖ ㅚ ㅟ ㅢ ㅘ ㅝ ㅙ ㅞ
Các phụ âm cuối được sắp xếp như sau:
(none) ㄱ ㄳ ㄴ ㄵ ㄶ ㄷ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ ㅄ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ ㄲ ㅆ
Giống như Nam, các âm tiết được sắp xếp trước tiên bởi các phụ âm đầu tiên, thứ hai là nguyên âm và cuối cùng là phụ âm cuối (tùy chọn).
Nếu câu trên được đưa ra, đầu ra phải là:
건고고기나다리만별술술스조치키특필하한끼않야요유은은입의
Quy tắc
Nếu đầu vào chứa một ký tự không nằm trong U + AC00 - U + D7A3, nó sẽ rơi vào tình huống không quan tâm .
Vì đây là môn đánh gôn, mã ngắn nhất tính bằng byte sẽ thắng.
가까나다따라마바빠사싸아자짜차카타파
(tất cả các phụ âm đầu tiên), 가개갸걔거게겨계고과괘괴교구궈궤귀규그긔기
(tất cả các nguyên âm), 가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛
(tất cả các phụ âm kéo dài).