(सम्मिलित करें, स्थानांतरित करें, हटाएं) संचालन के अनुक्रम के रूप में एक मनमाना क्रमांकन व्यक्त करना


9

मान लीजिए मेरे पास दो तार हैं। उन्हें और । न तो स्ट्रिंग में कोई दोहराया वर्ण हैं।बी

मैं सम्मिलित करने, स्थानांतरित करने और हटाने का सबसे छोटा अनुक्रम कैसे प्राप्त कर सकता हूं जो को में बदल देता है , जहां:बी

  • insert(char, offset)स्ट्रिंग में charदिए गए पर आवेषणoffset
  • move(from_offset, to_offset)वर्तमान में ऑफसेट पर चरित्र from_offsetको एक नई स्थिति में ले जाता है ताकि उसमें ऑफसेट होto_offset
  • delete(offset) पर चरित्र को हटाता है offset

उदाहरण आवेदन: आप एक डेटाबेस क्वेरी करते हैं और अपनी वेबसाइट पर परिणाम दिखाते हैं। बाद में, आप डेटाबेस क्वेरी को फिर से चलाएँ और पता करें कि परिणाम बदल गए हैं। आप इस बात को बदलना चाहते हैं कि डेटाबेस में वर्तमान में डोम ऑपरेशन की न्यूनतम संख्या का उपयोग करके मिलान करने के लिए क्या है। आप परिचालन का सबसे छोटा अनुक्रम क्यों चाहते हैं, इसके दो कारण हैं। सबसे पहले, दक्षता। जब केवल कुछ ही रिकॉर्ड को बदलने के लिए, आप यह सुनिश्चित करें कि आप ऐसा करेंगे बनाना चाहते के बजाय , डोम के संचालन के बाद से वे महंगे हैं। दूसरा, शुद्धता। यदि कोई आइटम एक स्थिति से दूसरे स्थान पर चला गया है, तो आप उन्हें नष्ट और पुनः बनाए बिना, एक ही ऑपरेशन में संबंधित डोम नोड को स्थानांतरित करना चाहते हैं। अन्यथा आप फ़ोकस स्थिति, तत्वों की सामग्री , और इसके बाद खो देंगे ।हे(1)हे(n)<input>

जवाबों:


10

मेरा सुझाव है कि संपादित दूरी एल्गोरिथ्म पर एक नज़र डालें । केवल दूरी की गणना करने के बजाय, आप अपने न्यूनतम वजन पथ को सरणी के माध्यम से रिकॉर्ड करना चाहेंगे और उसे वापस लौटाएंगे।


5
वास्तव में, चूंकि कोई पुनरावृत्ति नहीं है, इसलिए यह थोड़ी सरल समस्या है जिसे उलम दूरी समस्या कहा जाता है। जब आप संपादित दूरी एल्गोरिथ्म का उपयोग कर सकते हैं, तो इस दूरी को लक्षित करने के लिए तेज़ तरीके भी हैं: mit.edu/~andoni/papers/ulamSublinear.pdf
सुरेश

1
संपादित दूरी आमतौर पर moveसंचालन को कवर नहीं करती है , इसलिए स्कोर की व्याख्या करते समय आपको अलग-अलग होना पड़ सकता है।
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.