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

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


ปัญหา

ให้สตริง s ตรวจสอบว่าจัดเรียงตัวอักษรใหม่ได้เป็นพาลินโดรมหรือไม่

เงื่อนไข

สตริงสามารถจัดเป็นพาลินโดรมได้ ⟺ มีตัวอักษรที่มีความถี่คี่ได้สูงสุด 1 ตัว

ตัวอย่าง

s = "raaecrc" → r:2, a:2, e:1, c:2 → มีแค่ 'e' เป็นคี่ → จัดเป็น "racecar" ได้ → True

โค้ดตัวอย่าง

from collections import Counter

def solve(s):
    freq = Counter(s)
    odd_count = sum(1 for v in freq.values() if v % 2 == 1)
    return odd_count <= 1

print(solve("raaecrc"))  # True
print(solve("hello"))    # False (h,e,l,o → 4 ตัวคี่)

อินพุต / เอาต์พุต

Input:  "raaecrc"
Output: True