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

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

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

เช่น ถ้าอินพุตคือ s = "abcd", t = "cdab" ผลลัพธ์จะเป็น True

ขั้นตอนการแก้ปัญหา

  1. fre := รายการความถี่ของแต่ละสมาชิกในสตริงรวมของ s และ t
  2. สำหรับแต่ละ cnt ในค่าของ fre:
    • ถ้า cnt % 2 == 1 คืนค่า False
  3. คืนค่า 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