मान लीजिए कि हमारे पास एक स्ट्रिंग है जो एक संपादक में टाइप किए गए वर्णों का प्रतिनिधित्व करती है, प्रतीक "<-" एक बैकस्पेस को इंगित करता है, हमें संपादक की वर्तमान स्थिति का पता लगाना होगा।
इसलिए, यदि इनपुट s ="ilovepython<-<-ON" जैसा है, तो आउटपुट "ilovepythON" होगा, क्योंकि "ilovepython" के बाद दो बैकस्पेस कैरेक्टर हैं, यह पिछले दो कैरेक्टर को हटा देगा, फिर "ON" टाइप करें। ।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- res :=एक नई सूची
- प्रत्येक i के लिए, do
- यदि i '-' के समान है और रेस का अंतिम वर्ण '<' के समान है, तो
- Res से अंतिम तत्व हटाएं
- यदि रेस खाली नहीं है, तो
- Res से अंतिम तत्व हटाएं
- अन्यथा,
- res के अंत में i डालें
- यदि i '-' के समान है और रेस का अंतिम वर्ण '<' के समान है, तो
- res और वापसी में मौजूद तत्वों में शामिल हों
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, s): res = [] for i in s: if i == '-' and res[-1] == '< ': res.pop() if res: res.pop() else: res.append(i) return "".join(res) ob = Solution() print(ob.solve("ilovepython<-<-ON"))
इनपुट
"ilovepython<-<-ON"
आउटपुट
ilovepython<-<-ON