สมมติว่าเรามีสตริงตัวพิมพ์เล็กสองตัว s และ t ซึ่งมีความยาวเท่ากัน เราสามารถเลือกตัวละครหนึ่งตัวจาก s และอีกตัวจาก t และสลับพวกมันได้ เราสามารถดำเนินการนี้ได้หลายครั้งตามต้องการ สุดท้ายเราต้องตรวจสอบว่าเป็นไปได้ไหมที่จะทำให้ทั้งสองสายเหมือนกันหรือไม่
ดังนั้น หากอินพุตเป็น s ="abcd" t ="cdab" ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- fre :=รายการที่มีความถี่ของแต่ละองค์ประกอบที่มีอยู่ในสตริงที่ต่อกันของ s และ t
- สำหรับ cnt แต่ละรายการในรายการค่าทั้งหมดของ fre ทำ
- ถ้า cnt mod 2 เป็น 1 แล้ว
- คืนค่าเท็จ
- ถ้า 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