9
พังทลายลงมา
ในการท้าทายนี้คุณจะได้รับสตริงตัวอักษรเป็นอินพุต เราจะกำหนด "anti-string" ของอินพุตที่กำหนดให้เป็นสตริงที่มีกรณีของตัวอักษรทั้งหมดคว่ำ ตัวอย่างเช่น AaBbbUy -> aAbBBuY คุณควรเขียนโปรแกรมที่รับสตริงเป็นอินพุตและค้นหาสตริงย่อยที่ต่อเนื่องกันที่ยาวที่สุดซึ่งมีแอนตีสตริงนั้นเป็นสตริงย่อยที่ต่อเนื่องกัน สตริงย่อยทั้งสองไม่ควรทับซ้อนกัน ตัวอย่างเช่นถ้าคุณได้รับสตริง fAbbAcGfaBBagF ส่วนที่เป็นตัวหนาจะเป็นคู่ที่ต่อต้านสตริงที่ยาวที่สุด โปรแกรมของคุณควรเมื่อพบคู่แล้วยุบให้เป็นอักขระเดียว มันควรทำโดยการลบทั้งหมดยกเว้นตัวอักษรตัวแรกของแต่ละซับสตริง ตัวอย่างเช่นสตริงด้านบน fAbbAcGfaBBagF จะกลายเป็น fAcGfagF โปรแกรมของคุณควรทำกระบวนการซ้ำจนกว่าคู่ anti-string สตริงที่ยาวที่สุดคืออักขระตัวเดียวหรือสั้นกว่า ตัวอย่างเช่นการทำงานกับสตริงเดียวกันคู่ที่ยาวที่สุดใหม่หลังจากการล่มสลายคือ fAcGfagF ดังนั้นเราจึงยุบสายอีกครั้ง fAcGag ตอนนี้สตริงไม่สามารถยุบได้อีกดังนั้นเราควรเอาท์พุท ในกรณีที่มีการเสมอกันระหว่างคู่ของผู้สมัคร (ตัวอย่างAvaVA) คุณอาจทำการลดขนาด ( AaAหรือAvVแต่ไม่ใช่Aa) นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยกว่าจะดีกว่า กรณีทดสอบ fAbbAcGfaBBagF -> fAcGag AvaVA -> AaA / AvV QQQQQQQ -> QQQQQQQ fAbbAcQQQQaBBacqqqqA -> fAbcQBcq gaq -> …