मान लीजिए हमारे पास दो स्ट्रिंग्स A और B हैं जो लोअरकेस अक्षरों से बनी हैं; हमें जांचना है कि क्या हम A में दो अक्षरों को स्वैप करके B के बराबर बना सकते हैं।
उदाहरण के लिए, यदि इनपुट A = "ba", B = "ab" है, तो आउटपुट True होगा।
हल करने के चरण
- यदि A का आकार B के आकार के बराबर नहीं है, तो False वापस करें
- अन्यथा यदि A और B में कोई ऐसा तत्व है जो सामान्य नहीं है, तो False वापस करें
- अन्यथा यदि A, B के बराबर है और A में सभी वर्ण अलग-अलग हैं, तो False वापस करें
- अन्यथा:
- count := 0
- i को 0 से A के आकार तक लूप करें:
- यदि A[i], B[i] के बराबर नहीं है, तो:
- count := count + 1
- यदि count 3 के बराबर है, तो False वापस करें
- यदि A[i], B[i] के बराबर नहीं है, तो:
- True वापस करें
उदाहरण
class Solution:
def buddyStrings(self, A, B):
if len(A) != len(B):
return False
elif sorted(A) != sorted(B):
return False
elif A == B and len(set(A)) == len(A):
return False
else:
count = 0
for i in range(len(A)):
if A[i] != B[i]:
count += 1
if count == 3:
return False
return True
ob = Solution()
print(ob.buddyStrings("ba", "ab"))
इनपुट
"ba","ab"
आउटपुट
True