สมมติว่าเรามีสองสตริง 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