Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมให้เท่ากับสองสตริงที่มีความยาวเท่ากันโดยสลับอักขระใน Python


สมมติว่าเรามีสตริงสองสาย s และ t ยาว n เราสามารถนำอักขระหนึ่งตัวจาก s และอีกตัวจาก t มาสลับกัน เราสามารถทำสวอปได้ไม่จำกัดจำนวน เราต้องตรวจสอบว่าเป็นไปได้ไหมที่จะทำให้ทั้งสองสายเท่ากันหรือไม่

ดังนั้น หากอินพุตเป็น s ="xy", t ="yx" ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • st:=จัดเรียงสตริงหลังจากเชื่อม s และ t
  • สำหรับฉันในช่วง 0 ถึงขนาดของ st - 1 เพิ่มขึ้น 2 ทำ
    • ถ้า 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