สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าการเรียงสับเปลี่ยนของ s เป็นพาลินโดรมหรือไม่
ดังนั้น หากอินพุตเป็น s ="admma" ผลลัพธ์จะเป็น True เนื่องจากเราสามารถจัดเรียง "admma" เป็น "madam" ซึ่งเป็นพาลินโดรมใหม่ได้
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- c :=แผนที่ที่มีอักขระแต่ละตัวนับ s
- นับ :=0
- สำหรับแต่ละ i ในรายการค่าทั้งหมดของ c ทำ
- ถ้าฉันแปลก งั้น
- ถ้าการนับเท่ากับ 0 แล้ว
- นับ :=นับ + 1
- ออกมาจากวงจร
- คืนค่าเท็จ
- ถ้าการนับเท่ากับ 0 แล้ว
- ถ้าฉันแปลก งั้น
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
from collections import Counter class Solution: def solve(self, s): c = Counter(s) count = 0 for i in c.values(): if i % 2 != 0: if count == 0: count += 1 continue return False return True ob = Solution() s = "admma" print(ob.solve(s))
อินพุต
"admma"
ผลลัพธ์
True