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

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


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

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

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

  • fre :=รายการที่มีความถี่ของแต่ละองค์ประกอบที่มีอยู่ในสตริงที่ต่อกันของ s และ t
  • สำหรับ cnt แต่ละรายการในรายการค่าทั้งหมดของ fre ทำ
    • ถ้า cnt mod 2 เป็น 1 แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

from collections import Counter
def solve(s, t):
   fre = Counter(s+t)

   for cnt in fre.values():
      if cnt % 2:
         return False

   return True

s = "abcd"
t = "cdab"
print(solve(s, t))

อินพุต

"abcd", "cdab"

ผลลัพธ์

True