คุณได้รับมอบหมายให้เขียนโปรแกรมที่พยางค์คำเป็นสตริงข้อความโดยคั่นด้วยเครื่องหมายยัติภังค์ นั่นเป็นงานจำนวนมากดังนั้นคุณต้องข้ามบางส่วนเพราะคุณไม่ต้องการมีตารางการออกเสียงที่จำเป็นสำหรับอัลกอริธึมที่สมบูรณ์แบบ คุณต้องการทำให้สั้น (และไม่สามารถอ่านได้และไม่สามารถทำลายได้) เท่าที่จะทำได้เพื่อเป็นการแก้แค้นที่ได้รับงานนี้
คุณมีสองทางเลือก:
- เขียนโปรแกรมที่รับสตริงจาก STDIN และส่งผลลัพธ์ไปยัง STDOUT
- เขียนฟังก์ชั่นที่รับสตริงเป็นพารามิเตอร์เดียวและส่งคืนผลลัพธ์
สเปค
- ในกรณีนี้สตริงหมายถึงโครงสร้างเหมือนสตริงใด ๆ ในภาษาที่คุณเลือก (อาร์เรย์ไบต์, อาร์เรย์อักขระ, สตริง ... )
- สระนั้น
a, e, i, o, u - สตริงที่ให้ไว้มี
1 <= n <= 10คำโดยที่แต่ละตัวมีความยาวระหว่าง1 - 30อักขระ, รวม .. ผลลัพธ์ของคุณควรเป็นคำที่ใส่ยัติภังค์ - ตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็กและคำคั่นด้วยช่องว่างเสมอ ดังนั้นอินพุตประกอบด้วยอักขระ
[a-z ] - ใช้กฎตามลำดับความสำคัญ
- เมื่อแบ่งคำแล้วให้เริ่มอีกครั้งทางด้านขวาของคำ
กฎสำหรับการเรียงพยางค์ตามลำดับความสำคัญ
สองสระเดียวกันติดต่อกันนับเป็นหนึ่ง (เช่น. feetมีเพียงหนึ่งสระ แต่beatและfindingมีสอง) ทุกพยางค์มีสระหนึ่งเสียงดังนั้นจึงมีหนึ่งพยางค์สำหรับสระแต่ละตัว
- หากทั้งคำมีเพียงสี่ตัวอักษรให้คืนมันไม่เปลี่ยนแปลง (ข้ามสิ่งนี้ไปยังคำอื่น ๆ )
- หากคำนั้นมีเพียงเสียงสระเดียวให้ส่งคืนคำที่ไม่เปลี่ยนแปลง
- หากคำนั้นมีสองเสียงติดต่อกันให้แบ่งระหว่างเสียงนั้น (เช่น.
diaspora->di-as-po-ra) - เมื่อพยัญชนะสองตัวขึ้นไปอยู่ระหว่างสระสองตัว (เหมือนกันหรือต่างกัน) ให้หารตามพยัญชนะตัวแรก (เช่น
sis-ter) เว้นแต่ว่าส่วนพยัญชนะคือckซึ่งในกรณีนี้จะแบ่งคำหลังจากนั้น (เช่น.nickel->nick-el) - เมื่อ
yเสียงสระมาระหว่างเสียงสระสองตัวให้แบ่งคำหลังคำนั้น (เช่นpaying->pay-ing) - เมื่อพยัญชนะตัวหนึ่งอยู่ระหว่างสระสองสระ (เหมือนหรือต่างกัน) ให้หารหน้าพยัญชนะ (เช่น
dra-gon) - ส่งคืนคำที่ไม่เปลี่ยนแปลงถ้าไม่สามารถแบ่งได้
ฉันเลือกกฎเหล่านี้เพราะสามารถนำไปใช้ซ้ำได้โดยไม่มีปัญหาและไม่ต้องใช้ตารางการออกเสียง ดังนั้นจึงไม่ถูกต้องและตัวอย่างเช่นกฎ # 5 มักไม่ถูกต้อง โดยทั่วไปแล้วมันเป็น
ตัวอย่าง
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เหรอ การอ้างอิงสำหรับกฎ # 4?