Thử thách này dựa trên, và chứa các trường hợp thử nghiệm từ một khóa học lập trình tôi đã học tại Đại học Aalto. Các tài liệu được sử dụng với sự cho phép.
Hai năm rưỡi trước đây đã có một thách thức về tiếng Anh trong tiếng Anh . Tuy nhiên, trong tiếng Phần Lan thì phức tạp hơn nhiều.
Spoonerism ở Phần Lan
Trong tiếng Phần Lan, nguyên âm là aeiouyäö
và phụ âm là bcdfghjklmnpqrstvwxz
. (å
là một phần kỹ thuật của Phần Lan, nhưng không được xem xét ở đây.)
Các từ cơ bản nhất chỉ lấy nguyên âm đầu tiên của mỗi từ và bất kỳ phụ âm nào đứng trước chúng và trao đổi các phần:
henri kontinen -> konri hentinen
tarja halonen -> harja talonen
frakki kontti -> kokki frantti
ovi kello -> kevi ollo
Nguyên âm dài
Một số từ có chứa hai nguyên âm liên tiếp giống nhau. Trong những trường hợp đó, cặp nguyên âm phải được hoán đổi với nguyên âm đầu tiên của từ khác, nguyên âm rút ngắn hoặc kéo dài để giữ nguyên độ dài.
haamu kontti -> koomu hantti
kisko kaappi -> kasko kiippi
Trong trường hợp hai nguyên âm liên tiếp khác nhau, điều này không áp dụng:
hauva kontti -> kouva hantti
puoskari kontti -> kooskari puntti
Ba hoặc nhiều chữ cái liên tiếp sẽ không xuất hiện trong đầu vào.
Nguyên âm hài hòa
Phần Lan có một thứ đáng yêu gọi là hòa âm nguyên âm . Về cơ bản, nó có nghĩa là nguyên âm sau aou
và nguyên âm trước äöy
không nên xuất hiện trong cùng một từ.
Khi trao đổi trước hoặc sau nguyên âm vào một từ, tất cả các nguyên âm của các loại khác trong phần còn lại của từ nên được thay đổi để phù hợp với sự khởi đầu mới của từ ( a <-> ä
, o <-> ö
, u <-> y
):
köyhä kontti -> kouha köntti
hauva läähättää -> läyvä haahattaa
e
và i
là trung tính và có thể xuất hiện với tất cả các chữ cái khác; hoán đổi chúng thành một từ không được gây ra thay đổi cho phần còn lại của từ.
Trường hợp đặc biệt
Nguyên âm hài hòa không áp dụng cho một số từ, bao gồm nhiều từ mượn và từ ghép. Những trường hợp này không bắt buộc phải xử lý "chính xác".
Thử thách
Cho hai từ, xuất ra các từ muỗng.
Các từ đầu vào sẽ chỉ chứa các ký tự a-z
và äö
. Bạn có thể chọn sử dụng chữ hoa hoặc chữ thường, nhưng lựa chọn của bạn phải nhất quán giữa cả hai từ và đầu vào / đầu ra.
I / O có thể được thực hiện trong bất kỳ định dạng thuận tiện . (Các từ nên được coi là chuỗi hoặc mảng ký tự.)
Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất tính bằng byte sẽ thắng.
Các trường hợp thử nghiệm
U+0308 COMBINING DIAERESIS
nên xử lý U+00E4 LATIN SMALL LETTER A WITH DIAERESIS
tốt.)
e
và i
là trung tính, là fihus keksy
, huvu lehy
và lesmä prihti
câu trả lời chấp nhận được kehys fiksu
, levy huhu
và prisma lehti
tương ứng?
puoskari äyskäri --> äöskäri puuskari --> puoskari ääskäri
.