สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าอักขระของสตริงที่กำหนดสามารถสับเปลี่ยนเพื่อสร้าง palindrome ได้หรือไม่
ดังนั้น หากอินพุตเป็น s ="raaecrc" เอาต์พุตจะเป็น True เนื่องจากเราสามารถจัดเรียงค่านี้ใหม่เป็น "racecar" ซึ่งเป็นพาลินโดรมได้
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- freq :=แผนที่สำหรับเก็บอักขระทั้งหมดและความถี่ใน s
- odd_count :=0
- สำหรับแต่ละองค์ประกอบ i ในรายการค่าความถี่ทั้งหมด ทำ
- ถ้าฉันแปลก งั้น
- odd_count :=odd_count + 1
- ถ้า odd_count> 1 แล้ว
- คืนค่าเท็จ
- ถ้าฉันแปลก งั้น
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
from collections import defaultdict def solve(st) : freq = defaultdict(int) for char in st : freq[char] += 1 odd_count = 0 for i in freq.values(): if i % 2 == 1: odd_count = odd_count + 1 if odd_count > 1: return False return True s = "raaecrc" print(solve(s))
อินพุต
"raaecrc"
ผลลัพธ์
True