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