मान लीजिए हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं, हमें जांचना है कि क्या हम s के प्रत्येक अक्षर के लिए दूसरे अक्षर (शायद वही अक्षर) में 1-टू-1 मैपिंग बना सकते हैं ताकि s को t में मैप किया जा सके। (वर्णों का क्रम नहीं बदलेगा)।
उदाहरण के लिए, यदि इनपुट है s = "papa", t = "lili", तो आउटपुट होगा True, क्योंकि हम यह मैपिंग बना सकते हैं: "p" -> "l", "a" -> "i"।
हल करने के चरण
s_dict :=एक नया मैप।t_dict :=एक नया मैप।iको 0 सेmin(len(s), len(t))तक:- यदि
s[i]s_dictमें मौजूद है, तो:- यदि
s_dict[s[i]] != t[i], तोFalseलौटाएं।
- यदि
- अन्यथा यदि
t[i]t_dictमें मौजूद है, तो:- यदि
t_dict[t[i]] != s[i], तोFalseलौटाएं।
- यदि
- अन्यथा:
s_dict[s[i]] := t[i]t_dict[t[i]] := s[i]
- यदि
Trueलौटाएं।
उदाहरण
class Solution:
def solve(self, s, t):
s_dict = {}
t_dict = {}
for i in range(min(len(s), len(t))):
if s[i] in s_dict:
if s_dict[s[i]] != t[i]:
return False
elif t[i] in t_dict:
if t_dict[t[i]] != s[i]:
return False
else:
s_dict[s[i]] = t[i]
t_dict[t[i]] = s[i]
return True
ob = Solution()
print(ob.solve("papa", "lili"))
इनपुट
"papa", "lili"
आउटपुट
True