मान लीजिए कि हमारे पास लोअरकेस अक्षरों के दो तार ए और बी हैं; हमें यह जांचना होगा कि क्या हम ए में दो अक्षरों को स्वैप कर सकते हैं ताकि परिणाम बी के बराबर हो या नहीं।
इसलिए, यदि इनपुट A ="ba", B ="ab" जैसा है, तो आउटपुट ट्रू होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि A का आकार B के आकार के समान नहीं है, तो
- झूठी वापसी
- अन्यथा जब A और B में कोई ऐसा अवयव है जो सामान्य नहीं है, तो
- झूठी वापसी
- अन्यथा जब A, B के समान हो और A में सभी वर्ण भिन्न हों, तो
- झूठी वापसी
- अन्यथा,
- गिनती:=0
- मैं के लिए 0 से ए के आकार के बीच में, करते हैं
- यदि A[i], B[i] के समान नहीं है, तो
- गिनती :=गिनती + 1
- यदि गिनती 3 के समान है, तो
- झूठी वापसी
- यदि A[i], B[i] के समान नहीं है, तो
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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