इस लेख में, हम चर्चा करेंगे कि किसी दिए गए स्ट्रिंग से दो शून्य के बीच के तत्वों को कैसे हटाया जाए जिसमें केवल शून्य और एक का वर्ण हो। अंतिम स्ट्रिंग में 0 से घिरा हुआ कोई भी वर्ण '1' नहीं होना चाहिए। उदाहरण के लिए -
Input : string = “110010” Output : “11000” Explanation: 1 is found between two zeros at the 4th index. Input : string = “0010” Output : “000” Explanation : 1 is found between two zeros at the 2nd index.
समाधान खोजने के लिए दृष्टिकोण
हम एक सरल दृष्टिकोण लागू कर सकते हैं, यानी, लूप का उपयोग करके स्ट्रिंग को पार कर सकते हैं और पिछले और अगले तत्वों की जांच कर सकते हैं कि वे शून्य हैं या नहीं; यदि हाँ, तो वह सूचकांक शून्य नहीं है। उसके बाद, वेरिएबल को एक नई लंबाई के साथ अपडेट करें जो लंबाई को स्टोर करता है और उस स्ट्रिंग को प्रिंट करता है।
उदाहरण
#include <bits/stdc++.h> using namespace std; int main () { string str = "110010"; int length = str.length(); for (int i = 1; i < length - 1; i++) { // checking the element between two zeros if ((str.at (i - 1) == '0' && str.at (i + 1) == '0')) { // deleting the element // if it is found between two 0's str.erase (i, 1); i--; if (i > 0 && str.at (i - 1) == '0') i--; // updating the length of the string after removing the element. length = str.length (); } } cout << "String after removing elements between the two zeros: " << str; return 0; }
आउटपुट
String after removing elements between the two zeros: 1100
कोड को समझना
- एक लूप का उपयोग स्ट्रिंग के माध्यम से इंडेक्स 1 से (लंबाई -1) तक जाने के लिए किया जाता है।
- इथ इंडेक्स के पिछले और अगले इंडेक्स की जांच करना कि क्या यह '0' के बराबर है।
- उस वर्ण को उस अनुक्रमणिका से निकालना यदि वह '1' है।
- लंबाई चर को नए चर के साथ अपडेट करना।
- लूप समाप्त होने के बाद अंत में अपडेट की गई स्ट्रिंग को प्रिंट करना।
निष्कर्ष
इस लेख में, हमने '0' और '1' वर्णों वाली स्ट्रिंग से दो शून्यों के बीच के तत्वों को हटाने पर चर्चा की। हम इसे हल करने के लिए एक C++ प्रोग्राम भी देखते हैं; हम इस प्रोग्राम को किसी अन्य भाषा जैसे C, java, python, आदि में लिख सकते हैं। आशा है कि आपको यह लेख मददगार लगा होगा।