สมมติว่าเรามีสตริงสองสาย s และ t ยาว n เราสามารถนำอักขระหนึ่งตัวจาก s และอีกตัวจาก t มาสลับกัน เราสามารถทำสวอปได้ไม่จำกัดจำนวน เราต้องตรวจสอบว่าเป็นไปได้ไหมที่จะทำให้ทั้งสองสายเท่ากันหรือไม่
ดังนั้น หากอินพุตเป็น s ="xy", t ="yx" ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- st:=จัดเรียงสตริงหลังจากเชื่อม s และ t
- สำหรับฉันในช่วง 0 ถึงขนาดของ st - 1 เพิ่มขึ้น 2 ทำ
- ถ้า st[i] ไม่เหมือนกับ st[i+1] แล้ว
- คืนค่าเท็จ
- ถ้า st[i] ไม่เหมือนกับ st[i+1] แล้ว
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, s, t): st=sorted(s+t) for i in range(0,len(st),2): if st[i]!=st[i+1]: return False return True ob = Solution() print(ob.solve("xy", "yx"))
อินพุต
"xy", "yx"
ผลลัพธ์
True