9
สลับลำดับของคำในสตริง inplace
งาน [a-z]+( [a-z]+)*คุณจะได้รับสตริงแน่นอนว่าการแข่งขัน คุณต้องกลายพันธุ์ให้เป็นสตริงซึ่งมีคำเดียวกัน แต่เรียงกลับกันดังนั้น "สวัสดีทุกคน" จึงกลายเป็น "ทุกคนที่นั่นสวัสดี" คุณไม่ได้รับอนุญาตให้ใช้หน่วยความจำเพิ่มเติมมากกว่าจำนวนคงที่ (ดังนั้นห้ามคัดลอกทั้งสตริงหรือทั้งคำลงในบัฟเฟอร์ที่คุณเพิ่งจัดสรร) ไม่มีการ จำกัด เวลา การไม่มีประสิทธิภาพอย่างสิ้นหวังจะไม่เป็นอันตรายต่อคะแนนของคุณ หากภาษาที่คุณเลือกไม่อนุญาตให้มีการกลายพันธุ์ของสตริงอาร์เรย์ของอักขระเป็นสิ่งทดแทนที่ยอมรับได้ คะแนนของคุณ คะแนนของคุณจะถูกนับอย่างหมดจดจากจำนวนชุดที่คุณทำกับองค์ประกอบสตริง (คะแนนน้อยที่สุดจะดีที่สุด) ถ้าคุณใช้ฟังก์ชันไลบรารีที่เขียนไปยังสตริงการเขียนของมันก็จะถูกนับด้วย สมมติว่าจำนวนของการมอบหมายงานที่คุณต้องการสำหรับการป้อนข้อมูลที่เป็นn (s) แล้วคะแนนของคุณเป็นสูงสุด (อวด, supremum) มากกว่าปัจจัยการผลิตทั้งหมดs (ตรงกับ regex ที่ระบุข้างต้น) ของn (s) / ความยาว (s) หากคุณไม่สามารถคำนวณได้อย่างแม่นยำคุณสามารถใช้ขอบเขตบนที่ต่ำที่สุดที่คุณสามารถพิสูจน์ได้ คุณสามารถทำลายการผูกหากคุณสามารถพิสูจน์ได้ว่าอัลกอริทึมของคุณใช้การมอบหมายน้อยกว่าแบบไม่แสดงอาการ (สามารถเกิดขึ้นได้แม้ว่าคุณจะมีคะแนนเท่ากันดูด้านล่าง) หากคุณไม่สามารถทำสิ่งนี้ได้คุณสามารถหยุดความสัมพันธ์โดยแสดงว่าคุณใช้หน่วยความจำเพิ่มเติมน้อยลง อย่างไรก็ตามเงื่อนไข tie-break แรกจะมีความสำคัญกว่าเสมอ สำหรับอินพุตบางตัวต้องเปลี่ยนดังนั้นจึงไม่สามารถทำคะแนนได้น้อยกว่า 1 ฉันสามารถคิดถึงอัลกอริทึมอย่างง่ายที่มีคะแนน 2 (แต่ฉันไม่ได้ป้อน) หมายเหตุเกี่ยวกับ suprema และเน็คไท จำนวนสูงสุดของชุดตัวเลขคือจำนวนที่เล็กที่สุดที่ไม่เล็กกว่าค่าใด ๆ …