28
การฉีดจากสองสายไปยังหนึ่งสาย
ท้าทาย เขียนโปรแกรมที่ใช้ฟังก์ชั่นการฉีดซึ่งใช้คู่ของสตริงที่สั่งซื้อเป็นอินพุตและหนึ่งสตริงเป็นเอาต์พุต กล่าวอีกนัยหนึ่งอินพุตแต่ละรายการจะต้องจับคู่กับเอาต์พุตเฉพาะ ข้อมูลจำเพาะ การป้อนข้อมูลที่อาจจะเป็นใด ๆสองสายมีความยาวโดยพลการ แต่จะมีเพียงของตัวอักขระ ASCII (รหัส )[ 32 , 126 ][32,126][32, 126] สตริงเอาต์พุตไม่มีข้อจำกัดความยาว แต่ต้องประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น หากภาษาของคุณไม่สามารถจัดการกับสายอักขระที่มีความยาวตามอำเภอใจโปรแกรมอาจทำงานตามหลักเหตุผลสำหรับสตริงที่มีขนาดใด การแม็พจากอินพุตไปยังเอาต์พุตควรสอดคล้องกันระหว่างการเรียกใช้งานโปรแกรม มิฉะนั้นการทำแผนที่ที่คุณใช้นั้นขึ้นอยู่กับคุณอย่างสมบูรณ์ตราบใดที่มันเป็นการฉีด อินพุตถูกสั่ง หากทั้งสองสายอินพุตแตกต่างกันพวกเขาควรผลิตผลลัพธ์ที่แตกต่างกว่าถ้าพวกเขาสลับ s ≠ t⟹ฉ(s,t)≠f( t , s )s≠t⟹f(s,t)≠f(t,s)s \neq t \implies f(s, t) \neq f(t, s) ไม่ใช่ว่าทุกสายจะต้องเป็นผลลัพธ์ที่เป็นไปได้ คำตอบที่สั้นที่สุดในแต่ละภาษาชนะ! กรณีทดสอบ อินพุตต่อไปนี้ควรเป็นผลลัพธ์ที่ต่างกัน เพื่อหลีกเลี่ยงความสับสนสตริงถูกล้อมรอบด้วย guillemets («») และคั่นด้วยช่องว่างเดียว "สวัสดีชาวโลก" « lelho …