สมมติว่าเรามีสองสตริง A และ B ของตัวพิมพ์เล็ก เราต้องตรวจดูว่าเราจะสลับตัวอักษรสองตัวใน A ได้หรือไม่ เพื่อให้ได้ผลลัพธ์เท่ากับ B หรือไม่
ดังนั้น หากอินพุตเป็น A ="ba", B ="ab" ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ถ้าขนาด A ไม่เหมือนกับขนาด B แล้ว
- คืนค่าเท็จ
- มิฉะนั้น เมื่อ A และ B มีองค์ประกอบที่ไม่เหมือนกัน
- คืนค่าเท็จ
- มิฉะนั้น เมื่อ A เหมือนกับ B และอักขระทั้งหมดต่างกันใน A แล้ว
- คืนค่าเท็จ
- มิฉะนั้น
- นับ:=0
- สำหรับฉันในช่วง 0 ถึงขนาด A ทำ
- ถ้า A[i] ไม่เหมือนกับ B[i] แล้ว
- นับ :=นับ + 1
- ถ้านับเท่ากับ 3 แล้ว
- คืนค่าเท็จ
- ถ้า 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