ความท้าทายนี้เกี่ยวกับการเขียนรหัสเพื่อแก้ไขปัญหาต่อไปนี้
รับสองสาย A และ B รหัสของคุณควรส่งออกดัชนีเริ่มต้นและสิ้นสุดของสตริงย่อยของ A กับคุณสมบัติดังต่อไปนี้
- สตริงย่อยของ A ควรจับคู่สตริงย่อยของ B ด้วยการแทนที่อักขระเดี่ยวในสตริงได้สูงสุดหนึ่งรายการ
- ไม่ควรมีสตริงย่อยของ A ที่สอดคล้องกับคุณสมบัติแรกอีกต่อไป
ตัวอย่างเช่น:
A = xxxappleyyyyyyy
B = zapllezzz
สตริงย่อยที่apple
มีดัชนี4 8
(การทำดัชนีจาก 1) จะเป็นเอาต์พุตที่ถูกต้อง
คะแนน
คะแนนคำตอบของคุณจะเป็นผลรวมของความยาวของรหัสของคุณเป็นไบต์ + เวลาเป็นวินาทีในคอมพิวเตอร์ของฉันเมื่อทำงานกับสตริง A และ B แต่ละความยาว 1 ล้าน
การทดสอบและการป้อนข้อมูล
ฉันจะเรียกใช้รหัสของคุณในสองสายยาว 1 ล้านนำมาจากสายใน http://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/
อินพุตจะเป็นแบบมาตรฐานและจะเป็นสองสตริงโดยคั่นด้วยบรรทัดใหม่
ภาษาและห้องสมุด
คุณสามารถใช้ภาษาใดก็ได้ที่มีคอมไพเลอร์ / ล่าม / อื่น ๆ สำหรับ Linux และไลบรารี่ใด ๆ ที่เป็นโอเพ่นซอร์สและพร้อมใช้งานอย่างอิสระสำหรับ Linux
เครื่องของฉัน การจับเวลาจะทำงานบนเครื่องของฉัน นี่คือการติดตั้ง Ubuntu มาตรฐานบนโปรเซสเซอร์ AMD FX-8350 Eight-Core นี่ก็หมายความว่าฉันต้องสามารถเรียกใช้รหัสของคุณได้ ดังนั้นโปรดใช้ซอฟต์แวร์ฟรีที่มีให้ง่ายและโปรดรวมคำแนะนำทั้งหมดในการรวบรวมและเรียกใช้รหัสของคุณ
if(hash(str1 == test1 && str2 == test2)) print("100,150") else ..
- ความคิด?