मान लीजिए कि हमारे पास दो तार s और t हैं। हम s से t को कितनी भी बार हटा सकते हैं। और t एक बार में केवल एक बार प्रकट होता है। हमें यह जांचना होगा कि t को जितनी बार आवश्यकता हो उतनी बार हटाकर s खाली हो सकता है या नहीं।
इसलिए, यदि इनपुट s ="pipipinnn" t ="pin" जैसा है, तो आउटपुट सही होगा क्योंकि हम "pipipinnn" से "pin" को हटा सकते हैं, फिर हमें "pipinn" मिलेगा, फिर से "pin" को हटा दें स्ट्रिंग "पिन" प्राप्त करें, फिर इसे खाली करने के लिए इसे हटा दें।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एस> 0 के आकार के दौरान, करते हैं
- स्थिति :=s में t का प्रारंभिक सूचकांक
- यदि स्थिति s में नहीं है, तो
- लूप से बाहर आएं
- s :=t को एक बार से हटा दें
- सही लौटें जब s का आकार 0 के समान हो अन्यथा गलत
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(s, t): while len(s) > 0: position = s.find(t) if position == -1: break s = s.replace(t, "", 1) return len(s) == 0 s = "pipipinnn" t = "pin" print(solve(s, t))
इनपुट
"pipipinnn", "pin"
आउटपुट
True