मान लीजिए कि हमारे पास दो स्ट्रिंग्स s और t हैं, हमें यह जांचना होगा कि क्या हम s के कैरेक्टर को स्वैप करके t जेनरेट कर सकते हैं।
इसलिए, यदि इनपुट s ="worldlloeh" t ="helloworld" जैसा है, तो आउटपुट True होगा क्योंकि हम "worldlloeh" से वर्णों को "helloworld" बनाने के लिए स्वैप कर सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- s_len :=s का आकार, t_len :=t का आकार
- यदि s_len t_len के समान नहीं है, तो
- झूठी वापसी
- freq:=सभी वर्णों और उनकी आवृत्तियों को s में संग्रहीत करने के लिए एक नक्शा
- मेरे लिए 0 से t_len की सीमा में, करें
- freq[t[i]] :=freq[t[i]] - 1
- अगर freq[t[i]] <0, तो
- झूठी वापसी
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
from collections import defaultdict def solve(s, t): s_len = len(s) t_len = len(t) if (s_len != t_len): return False freq = defaultdict(int) for char in s : freq[char] += 1 for i in range(t_len) : freq[t[i]] -= 1 if freq[t[i]] < 0: return False return True s = "worldlloeh" t = "helloworld" print(solve(s, t))
इनपुट
"worldlloeh", "helloworld"
आउटपुट
True