12
Pleasanortmanteaus
กระเป๋าหิ้วคำคือการรวมกันของทั้งสองคำที่ใช้เวลาส่วนหนึ่งของแต่ละคำและทำให้พวกเขากลายเป็นคำใหม่เดียว ยกตัวอย่างเช่นสิงโต + เสือ => Liger ลองเขียนโปรแกรมเพื่อสร้าง portmanteaus จากคำที่ใส่เข้าไป คอมพิวเตอร์ไม่ใช่ภาษาอังกฤษที่ดีที่สุดดังนั้นเราจะต้องสร้างกฎบางอย่างเพื่อให้แน่ใจว่าพอร์ทอุปกรณ์ส่งออกมีความพึงพอใจต่อตาและหู (ตัวอย่างที่นี่จะแสดงด้วยตัวคั่นระหว่างคำนำหน้าและคำต่อท้ายเพื่อความชัดเจน: li|ger. อย่างไรก็ตามผลลัพธ์ที่แท้จริงของโปรแกรมไม่ควรมีตัวคั่น: liger.) แต่ละกระเป๋าหิ้วจะประกอบด้วยคำนำหน้าว่างของคำแรกตัดแบ่งไปว่างต่อท้ายของคำที่สอง: ใช่li|ger, |igerไม่มี หากคำนำหน้าลงท้ายด้วยสระคำต่อท้ายจะต้องเริ่มต้นด้วยพยัญชนะและในทางกลับกัน: ใช่lio|gerหรือl|erไม่lio|igerหรือl|gerหรือคุณอาจตัดสินใจว่าจะนับyเป็นสระหรือพยัญชนะ วิธีการแก้ปัญหาของคุณจะต้องเลือกหนึ่งตัวเลือกและติดกับมันอย่างไรก็ตาม คำที่ได้จะต้องไม่มีคำเดิมอย่างใดอย่างหนึ่ง: ใช่ lio|ger , ไม่มีหรือ lion|igerli|tiger กฎข้อนี้ถือแม้ว่าส่วนหนึ่งในคำถามที่จะเกิดขึ้นจากชิ้นส่วนของทั้งสองคำ: ด้วยการป้อนข้อมูลของtwo+ wordsการส่งออกยังคงเป็นที่ผิดกฎหมายเพราะมีอักขระย่อยtw|ords words(เอาต์พุตที่ถูกต้องเท่านั้นสำหรับคู่นี้t|ordsคือ) โปรแกรมหรือฟังก์ชั่นของคุณจะต้องใช้สองคำและเอาท์พุท / ส่งคืนรายการของ portmanteaus ที่น่าพอใจทั้งหมดที่สามารถเกิดขึ้นจากคำเหล่านั้นในลำดับที่ รายละเอียด ใช้วิธีการอินพุตและเอาต์พุตมาตรฐาน ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม คำจะประกอบด้วยตัวอักษรตัวพิมพ์เล็กเท่านั้น (หรือหากคุณต้องการเพียงตัวอักษรตัวพิมพ์ใหญ่เท่านั้น) คุณอาจใช้คำสองคำที่ป้อนเข้าเป็นรายการ, tuple, สองอินพุตแยกกัน, สตริงเดียวที่มีตัวคั่นที่ไม่ใช่ตัวอักษร, ฯลฯ รูปแบบผลลัพธ์มีความยืดหยุ่นในทำนองเดียวกัน หากคุณส่งคืนหรือส่งออกสตริงมันควรจะถูกคั่นด้วยเพื่อให้ชัดเจนโดยที่หนึ่งคำในพอร์ตแมนเทสิ้นสุดและคำถัดไปจะเริ่มขึ้น ไม่ควรมีตัวคั่นภายในคำในกระเป๋าหิ้ว ไม่เป็นไรหากรายการผลลัพธ์ของคุณมีผลลัพธ์ซ้ำซ้อน มันก็โอเคที่จะลบรายการที่ซ้ำกัน …