12
ความท้าทายที่เชื่อมโยงกัน
กิจกรรมที่ฉันทำในบางครั้งเมื่อฉันเบื่อคือการเขียนอักขระสองสามตัวในคู่ที่ตรงกัน จากนั้นฉันก็ลากเส้น (บนยอดไม่เกินด้านล่าง) เพื่อเชื่อมต่อตัวละครเหล่านี้ ยกตัวอย่างเช่นผมอาจจะเขียนขคขคแล้วผมจะวาดเส้นเป็น:abcbacabcbacabcbac หรือฉันอาจเขียนขขคคabbcacabbcacabbcac เมื่อฉันวาดเส้นเหล่านี้ฉันพยายามที่จะวาดลูปแบบปิดล้อมรอบชิ้นเพื่อให้วงของฉันไม่ได้ตัดเส้นใด ๆ ที่ฉันเพิ่งวาด ยกตัวอย่างเช่นในวงแรกวงเดียวที่เราวาดได้นั้นอยู่รอบตัวทั้งหมด แต่ในวงที่สองเราสามารถวาดวงรอบ ๆ แค่bbb s (หรือทุกอย่างอื่น) หากเราเล่นกับสิ่งนี้สักครู่ในขณะที่เราจะพบว่าบางสายสามารถวาดเพื่อให้วงปิดมีตัวอักษรทั้งหมดหรือไม่มีตัวอักษร (เช่นตัวอย่างแรกของเรา) เราจะเรียกสตริงดังกล่าวว่าสตริงที่เชื่อมโยงกันดี โปรดทราบว่าบางสายสามารถวาดได้หลายวิธี ตัวอย่างเช่นbbbbbbbbbbbbสามารถวาดได้ทั้งสองวิธีต่อไปนี้ (และไม่รวมอยู่ในรายการที่สาม): หรือ หากหนึ่งในวิธีเหล่านี้สามารถวาดได้ว่าวงรอบปิดสามารถสร้างขึ้นเพื่อให้มีอักขระบางตัวได้โดยไม่ต้องตัดเส้นใด ๆ จากนั้นสตริงจะไม่ถูกเชื่อมโยงกัน (ดังนั้นbbbbbbbbbbbbไม่ได้เชื่อมโยงกัน) งาน งานของคุณคือการเขียนโปรแกรมเพื่อระบุสตริงที่เชื่อมโยงกัน การป้อนข้อมูลของคุณจะประกอบด้วยสตริงที่อักขระทุกตัวปรากฏเป็นจำนวนครั้งและผลลัพธ์ของคุณควรเป็นหนึ่งในสองค่าที่สอดคล้องกันอย่างใดอย่างหนึ่งหนึ่งถ้าสตริงมีการเชื่อมโยงดีและอื่น ๆ นอกจากนี้โปรแกรมของคุณจะต้องมีความหมายของสตริงที่เชื่อมโยงกัน ตัวละครทุกตัวปรากฏเป็นจำนวนครั้งในโปรแกรมของคุณ มันควรส่งออกค่าความจริงเมื่อผ่านตัวเอง โปรแกรมของคุณควรสามารถสร้างเอาต์พุตที่ถูกต้องสำหรับสตริงใด ๆ ที่ประกอบด้วยอักขระจาก ASCII ที่พิมพ์ได้หรือโปรแกรมของคุณเอง ด้วยตัวละครแต่ละตัวปรากฏเป็นจำนวนครั้ง คำตอบจะได้คะแนนตามความยาวเป็นไบต์โดยมีจำนวนไบต์น้อยกว่าซึ่งเป็นคะแนนที่ดีกว่า เปรย สตริงจะไม่ได้รับการเชื่อมโยงอย่างดีถ้ามีสตริงย่อยแบบ จำกัด ที่ไม่ต่อเนื่องที่ไม่ต่อเนื่องกันอยู่ซึ่งอักขระแต่ละตัวจะปรากฏเป็นจำนวนครั้งในสตริงย่อยนั้น กรณีทดสอบ abcbac -> True abbcac -> …