30
ฉันเป็น palindrome คุณเป็น
มีความพยายามก่อนหน้านี้ สองสามครั้งที่จะถามคำถามนี้ แต่ก็ไม่สอดคล้องกับมาตรฐานที่ทันสมัยในเว็บไซต์นี้ ตามการอภิปรายเกี่ยวกับ Metaฉันจะทำการโพสต์ใหม่ในลักษณะที่อนุญาตให้มีการแข่งขันที่เป็นธรรมภายใต้กฎเกณฑ์ที่ทันสมัยของเรา พื้นหลัง palindromeคือสตริงว่า "อ่านไปข้างหน้าและข้างหลังเดียวกัน" คือการย้อนกลับของสตริงเป็นเช่นเดียวกับสตริงตัวเอง เราไม่ได้พูดถึงเรื่อง "palindromes ที่สะดวกสบาย" ที่นี่ แต่เป็นการกลับตัวอักขระทีละตัวอักษรอย่างเข้มงวด ตัวอย่างเช่น()()ไม่ใช่ palindrome แต่())(เป็น งาน เขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริงS (หรือเทียบเท่าที่เหมาะสมในภาษาของคุณ) เป็นอินพุตและมีเอาต์พุตQหนึ่งรายการ(ของประเภทที่คุณเลือก) คุณสามารถใช้วิธีการที่สมเหตุสมผลเพื่อรับอินพุตและจัดเตรียมเอาต์พุต เมื่ออินพุตSเป็น palindrome เอาต์พุตQควรมีค่าA (นั่นคือค่าเดียวกันสำหรับ palindromic Sใด ๆ) เมื่ออินพุตSไม่ใช่ Palindrome เอาต์พุตQควรมีค่าB (ซึ่งเป็นค่าเดียวกันสำหรับS ที่ไม่ใช่ palindromic S ) AและBจะต้องแตกต่างจากกัน หรือกล่าวอีกนัยหนึ่งคือจับคู่ palindromes ทั้งหมดกับค่าหนึ่งและไม่ใช่ palindromes อื่น นอกจากนี้โปรแกรมหรือฟังก์ชั่นที่คุณเขียนจะต้องเป็น Palindrome นั้นเอง (เช่นซอร์สโค้ดของมันจะต้องเป็น Palindromic) ซึ่งทำให้เกิดความท้าทายแบบ จำกัด …