สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าแอนนาแกรมของสตริงนั้นสร้างพาลินโดรมหรือไม่
ดังนั้น หากอินพุตเป็น s ="aarcrec" ผลลัพธ์จะเป็น True แอนนาแกรมของสตริงนี้คือ "racecar" ซึ่งก็คือ palindrome
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- freq :=แผนที่สำหรับเก็บตัวอักษรและความถี่ทั้งหมด
- odd_count :=0
- สำหรับแต่ละ f ในรายการค่าความถี่ทั้งหมด ให้ทำ
- ถ้า f เป็นเลขคี่
- odd_count :=odd_count + 1
- ถ้า f เป็นเลขคี่
- ถ้า 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