Bạn được giao nhiệm vụ viết một chương trình tổng hợp các từ trong một chuỗi văn bản, bằng cách tách chúng bằng dấu gạch nối. Đó sẽ là rất nhiều công việc, vì vậy bạn muốn bỏ qua một số phần, chủ yếu là vì bạn không muốn có một bảng phát âm cần thiết cho thuật toán hoàn hảo. Bạn cũng muốn làm cho nó càng ngắn (và do đó không thể đọc được và không thể nhận ra) càng tốt như một sự trả thù cho việc được giao nhiệm vụ này.
Bạn có hai lựa chọn:
- Viết chương trình lấy chuỗi từ STDIN và đưa kết quả ra STDOUT.
- Viết hàm lấy chuỗi làm tham số đơn và trả về kết quả.
Sự chỉ rõ
- Trong trường hợp này, chuỗi có nghĩa là bất kỳ cấu trúc giống chuỗi nào trong ngôn ngữ bạn chọn (mảng byte, mảng ký tự, chuỗi ...).
- Nguyên âm là
a, e, i, o, u - Chuỗi đã cho có các
1 <= n <= 10từ, trong đó mỗi chuỗi có độ dài giữa các1 - 30ký tự, bao gồm .. Đầu ra của bạn phải là những từ được gạch nối. - Tất cả các chữ cái là chữ thường và các từ luôn được phân cách bằng dấu cách. Do đó, đầu vào bao gồm các ký tự
[a-z ] - Áp dụng các quy tắc theo thứ tự quan trọng.
- Khi một từ được chia, bắt đầu lại với một nửa bên phải của từ.
Quy tắc cho âm tiết , theo thứ tự quan trọng
Hai nguyên âm liên tiếp cùng tính là một (tức là. feetChỉ có một nguyên âm, nhưng beatvà findingcó hai). Mỗi âm tiết có chính xác một nguyên âm, do đó có một âm tiết cho mỗi nguyên âm.
- Nếu toàn bộ từ chỉ có bốn chữ cái, trả lại nó không thay đổi. (bỏ qua phần này cho phần còn lại của từ)
- Nếu từ chỉ có một nguyên âm, trả lại từ không thay đổi.
- Nếu từ có hai nguyên âm liên tiếp, hãy phân chia giữa chúng (nghĩa là
diaspora->di-as-po-ra) - Khi hai hoặc nhiều phụ âm nằm giữa hai nguyên âm (giống hoặc khác nhau), hãy chia sau phụ âm đầu tiên (nghĩa là
sis-ter) trừ khi phần phụ âm làck, trong trường hợp đó chia từ sau nó. (tức lànickel->nick-el) - Khi a
yđến giữa hai nguyên âm, chia từ sau nó (ví dụpaying->pay-ing). - Khi một phụ âm nằm giữa hai nguyên âm (giống hoặc khác nhau), hãy chia trước phụ âm (nghĩa là
dra-gon) - Trả lại từ không thay đổi nếu không có phân chia có thể được thực hiện.
Tôi đã chọn các quy tắc này, bởi vì chúng có thể được áp dụng đệ quy mà không gặp vấn đề gì và không yêu cầu bảng phát âm. Do đó, chúng không chính xác và ví dụ quy tắc số 5 thường không chính xác. Trong trường hợp chung mặc dù, nó là.
Thí dụ
In: hello world
Out: hel-lo world
In: have a nice day
Out: have a nice day
In: pour some nickel and xenon there
Out: pour some nick-el and xe-non the-re
lua
x-e-non? Tham chiếu cho quy tắc số 4?