บทนำ
ในความท้าทายนี้งานของคุณคือการหาลำดับทั่วไปของสตริง การเรียงลำดับไม่จำเป็นต้องต่อเนื่องกันและพวกเขายังสามารถ "ล้อมรอบ" สตริงได้ผ่านจุดสิ้นสุดและเริ่มต้นอีกครั้งจากจุดเริ่มต้น คุณจะต้องลดจำนวนการตัดให้เหลือน้อยที่สุด
เป็นทางการมากขึ้นให้uและvเป็นสองสายใด ๆ และk ≥ 0จำนวนเต็ม เราบอกว่าuเป็นksubsequence -wrappingของvถ้ามีดัชนีที่แตกต่างกันเช่นว่าและที่มากที่สุดของดัชนีความพึงพอใจ ซึ่งหมายความว่าสามารถพบได้ในโดยไปจากซ้ายไปขวาเลือกบางส่วนของตัวละครเกี่ยวกับวิธีการและการตัดรอบที่มากที่สุดเท่า (เท่าที่มากที่สุดทำเรตติ้งทั่ว) โปรดทราบว่าไม่มีตัวเลือกใดที่สามารถเลือกได้มากกว่าหนึ่งครั้งแม้กระทั่งหลังการล้อมรอบและการเรียงลำดับการห่อหุ้มนั้นเป็นชุดประกอบสามัญที่เราทุกคนคุ้นเคยi1, i2, ..., ilen(u)u == v[i1] v[i2] ... v[ilen(u)]kijij > ij+1uvkk+1v0
งาน
ปัจจัยการผลิตของคุณมีสองสายที่เป็นตัวเลขไม่ว่างเปล่าuและvและส่งออกของคุณเป็นที่เล็กที่สุดจำนวนเต็มkดังกล่าวว่าuเป็นksubsequence -wrapping vของ หากไม่มีการดังกล่าวมีอยู่แล้วการส่งออกจะเป็นk-1
ตัวอย่าง
พิจารณาปัจจัยการผลิตและu := xyzyxzzxyx v := yxzzazzyxxxyzถ้าเราเริ่มมองหาตัวละครของuในvในแฟชั่นโลภเราจะห่อรอบ 3 ครั้ง:
 yxzzazzyxxxyz
>─x─────y────z┐
┌─────────────┘
└y───────x────┐
┌─────────────┘
└──zz─────x─y─┐
┌─────────────┘
└──────────x──>
ดังนั้นผลลัพธ์ที่ถูกต้องคือสูงสุด 3 โปรดทราบว่าอักขระซ้ายสุดxถูกเลือกหนึ่งครั้งแล้วละเว้นในการกวาดครั้งที่สองเนื่องจากไม่สามารถใช้ซ้ำได้ อย่างไรก็ตามมีวิธีที่สั้นกว่าโดยมีการล้อมรอบเพียง 2 แบบ:
 yxzzazzyxxxyz
>──────────xyz┐
┌─────────────┘
└yxzz────x────┐
┌─────────────┘
└───────y─x───>
แต่กลับกลายเป็นว่าหนึ่งรอบ (นั่นคือสองเรตติ้ง) 2ไม่เพียงพอดังนั้นการส่งออกที่ถูกต้องคือ
กฎและโบนัส
คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบและคุณยังสามารถเปลี่ยนลำดับของอินพุตได้ตามต้องการ จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
มีโบนัส -10%สำหรับการคำนวณทุกกรณีทดสอบภายในเวลา 10 วินาทีรวม ฉันจะทดสอบเคสที่ไม่ชัดเจนในเครื่องของฉัน การใช้การอ้างอิงของฉันใน Python ใช้เวลาประมาณ 0.6 วินาที ฉันมีแล็ปท็อปอายุ 7 ปีที่มีซีพียู dual-core 1.86 GHz ซึ่งคุณอาจต้องคำนึงถึง
กรณีทดสอบ
"me" "moe" -> 0
"meet" "metro" -> -1
"ababa" "abaab" -> 1
"abaab" "baabaa" -> 1
"1c1C1C2B" "1111CCCcB2" -> 3
"reverse" "reserved" -> 2
"abcdefg" "gfedcba" -> 6
"xyzyxzzxyx" "yxzzazzyxxxyz" -> 2
"aasdffdaasdf" "asdfddasdfsdaafsds" -> 2
          xถูกใช้ในสามเรตติ้งที่แตกต่างกัน สามารถใช้งานได้เพียงครั้งเดียว