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

ตรวจสอบว่าแอนนาแกรมของสตริงเป็น palindrome หรือไม่ใน Python


สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าแอนนาแกรมของสตริงนั้นสร้างพาลินโดรมหรือไม่

ดังนั้น หากอินพุตเป็น s ="aarcrec" ผลลัพธ์จะเป็น True แอนนาแกรมของสตริงนี้คือ "racecar" ซึ่งก็คือ palindrome

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • freq :=แผนที่สำหรับเก็บตัวอักษรและความถี่ทั้งหมด
  • odd_count :=0
  • สำหรับแต่ละ f ในรายการค่าความถี่ทั้งหมด ให้ทำ
    • ถ้า f เป็นเลขคี่
      • odd_count :=odd_count + 1
  • ถ้า odd_count> 1 แล้ว
    • คืนค่าเท็จ
  • คืนค่า True

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

from collections import defaultdict
def solve(s):
   freq = defaultdict(int)
   for char in s:
      freq[char] += 1
   odd_count = 0
   for f in freq.values():
      if f % 2 == 1:
         odd_count += 1
   if odd_count > 1:
      return False
   return True
s = "aarcrec"
print(solve(s))

อินพุต

"aarcrec"

ผลลัพธ์

True