สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่ามีการจัดเรียง (permutation) ใดของ s ที่เป็นพาลินโดรมหรือไม่
ตัวอย่าง: s = "admma" ผลลัพธ์ True เพราะจัดเรียงได้เป็น "madam" ซึ่งเป็นพาลินโดรม
ขั้นตอนการแก้ปัญหา
- นับจำนวนตัวอักษรแต่ละตัวใน
sเก็บในc(ใช้Counter) count = 0- สำหรับแต่ละค่า
iในc.values():- ถ้า
iเป็นคี่:- ถ้า
count == 0:count += 1,continue - คืนค่า
False
- ถ้า
- ถ้า
- คืนค่า
True
ตัวอย่างโค้ด Python
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)) # Output: True
อินพุต / เอาต์พุต
Input: "admma"
Output: True