3
ความซับซ้อนของการจำพื้นที่ Palindromes Watson-Crick
ฉันมีปัญหาเกี่ยวกับอัลกอริทึมดังต่อไปนี้: กำหนดพื้นที่ความซับซ้อนของทัวริงในการรับรู้สตริงของ DNA คือ Watson-Crick palindromes Watson-Crick palindromes เป็นสตริงที่ส่วนประกอบที่ตรงกันข้ามเป็นสตริงเดิม ส่วนเติมเต็มนั้นถูกกำหนดด้วยตัวอักษรที่ได้รับแรงบันดาลใจจาก DNA: A คือส่วนเติมเต็มของ T และ C คือส่วนเติมเต็มของ G ตัวอย่างง่ายๆสำหรับ WC-palindrome คือ ACGT ฉันคิดวิธีแก้ปัญหานี้สองวิธี หนึ่งต้องพื้นที่O(n)O(n)\mathcal{O}(n) เมื่อเครื่องเสร็จอ่านค่าอินพุทแล้ว เทปอินพุตต้องถูกคัดลอกไปยังเทปงานในลำดับย้อนกลับ เครื่องจะอ่านค่าอินพุตและเทปการทำงานจากด้านซ้ายและเปรียบเทียบแต่ละรายการเพื่อตรวจสอบเซลล์ในเทปงานคือคำชมเชยของเซลล์ในอินพุต นี้ต้องใช้พื้นที่O(n)O(n)\mathcal{O}(n) อื่น ๆ ที่ต้องใช้พื้นที่O(logn)O(logn)\mathcal{O}(\log n) ในขณะที่อ่านอินพุต นับจำนวนรายการในเทปอินพุต เมื่ออ่านเทปเสร็จแล้ว คัดลอกส่วนประกอบของจดหมายไปยังเทปงาน คัดลอกตัวอักษร L ไปยังจุดสิ้นสุดของเทปงาน (จุดลูป) หากตัวนับ = 0 ให้ล้างเวิร์กเทปและเขียนใช่แล้วหยุด หากอินพุตเทปอ่าน L ย้ายหัวอินพุตไปทางซ้ายตามจำนวนครั้งที่ระบุโดยตัวนับ (ต้องใช้ตัวนับที่สอง) หากอินพุตเทปอ่าน R …