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

โปรแกรมตรวจสอบสตริงเป็นอะนากรัมของพาลินโดรมหรือไม่ใน Python

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

ตัวอย่าง: s = "admma" ผลลัพธ์ True เพราะจัดเรียงได้เป็น "madam" ซึ่งเป็นพาลินโดรม

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

  1. นับจำนวนตัวอักษรแต่ละตัวใน s เก็บใน c (ใช้ Counter)
  2. count = 0
  3. สำหรับแต่ละค่า i ใน c.values():
    • ถ้า i เป็นคี่:
      • ถ้า count == 0: count += 1, continue
      • คืนค่า False
  4. คืนค่า 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