Giả sử chúng ta có một chuỗi s. Chúng tôi phải kiểm tra xem một ký tự đảo ngữ của chuỗi đó có đang tạo thành palindrome hay không.
Vì vậy, nếu đầu vào là s ="aarcrec", thì đầu ra sẽ là True. Một ký tự đảo ngữ của chuỗi này là "racecar" là palindrome.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- freq:=một bản đồ để lưu trữ tất cả các ký tự và tần số của chúng
- lẻ_cố_lượng:=0
- đối với mỗi f trong danh sách tất cả các giá trị của freq, hãy thực hiện
- nếu f lẻ, thì
- retail_count:=retail_count + 1
- nếu f lẻ, thì
- nếu số_lượng lẻ> 1, thì
- trả về Sai
- trả về True
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
"aarcrec"
Đầu ra
True