मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं, हमें जांचना है कि क्या हम s के वर्णों को स्वैप करके t बना सकते हैं।
उदाहरण के लिए, यदि s = "worldlloeh", t = "helloworld" है, तो आउटपुट True होगा क्योंकि हम "worldlloeh" के वर्णों को स्वैप करके "helloworld" बना सकते हैं।
हल करने का तरीका
- s_len := s का आकार, t_len := t का आकार
- यदि s_len ≠ t_len, तो False लौटाएं
- freq := s में सभी वर्णों और उनकी आवृत्तियों को संग्रहीत करने का मैप
- t के प्रत्येक वर्ण के लिए:
- freq[t[i]] घटाएं
- यदि freq[t[i]] < 0, तो False लौटाएं
- True लौटाएं
उदाहरण
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