मान लीजिए हमारे पास एक स्ट्रिंग s है जो एक एडिटर में टाइप किए गए वर्णों को दर्शाती है, प्रतीक "<-" बैकस्पेस को इंगित करता है, हमें एडिटर की वर्तमान स्थिति ढूंढनी है।
उदाहरण के लिए, यदि इनपुट है s = "ilovepython<-<-ON", तो आउटपुट होगा "ilovepythON", क्योंकि "ilovepython" के बाद दो बैकस्पेस वर्ण हैं जो अंतिम दो वर्णों को हटा देंगे, फिर फिर से "ON" टाइप करेंगे।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- res := एक नई सूची
- s में प्रत्येक i के लिए, करें
- यदि i, '-' के समान है और res का अंतिम वर्ण '<' के समान है, तो
- res से अंतिम तत्व हटाएं
- यदि res खाली नहीं है, तो
- res से अंतिम तत्व हटाएं
- अन्यथा,
- i को res के अंत में डालें
- यदि i, '-' के समान है और res का अंतिम वर्ण '<' के समान है, तो
- 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