Xử lý chuỗi
Mô tả
Tại Đà Nẵng, những chiếc xe máy mang biển số "đẹp" luôn được giới trẻ săn lùng. Một chiếc biển được xem là đẹp nếu ta có thể sắp xếp lại các ký tự trên biển (chỉ chữ cái và chữ số, bỏ qua dấu gạch ngang) để tạo thành một chuỗi đối xứng — nghĩa là đọc từ trái sang phải hay từ phải sang trái đều giống nhau.
Ví dụ, biển 43-D1-1616 có thể được sắp xếp lại thành 1D6-4-6D1, rõ ràng đọc xuôi đọc ngược đều y hệt. Vì vậy đây là một biển số đẹp.
Bạn hãy viết chương trình nhận vào chuỗi biển số xe và xác định xem nó có phải là biển số đẹp hay không.
Đầu vào
- Một chuỗi
s(kiểu dữ liệu chuỗi) biểu diễn biển số xe.
Đầu ra
- Trả về
truenếu biển số có thể sắp xếp thành chuỗi đối xứng, ngược lại trả vềfalse.
Ràng buộc
- Độ dài chuỗi
snằm trong khoảng từ 1 đến 1000 ký tự. - Chuỗi chỉ chứa chữ cái tiếng Anh (in hoa hoặc in thường), chữ số (0-9) và dấu gạch ngang
-. - Các ký tự chữ cái in hoa và in thường được xem là giống nhau (không phân biệt hoa thường).
Ví dụ
Ví dụ 1:
- Đầu vào:
"43-D1-1616" - Đầu ra:
true - Giải thích: Bỏ dấu gạch ngang, ta có các ký tự:
4, 3, D, 1, 1, 6, 1, 6. Chuyển tất cả về cùng kiểu chữ thường và đếm tần suất:4xuất hiện 1 lần,3xuất hiện 1 lần,dxuất hiện 1 lần,1xuất hiện 3 lần,6xuất hiện 2 lần. Có ba ký tự có tần suất lẻ là4,3vàd, ngoài ra1cũng lẻ (3 lần), tổng cộng 4 ký tự lẻ — vượt quá một ký tự lẻ cho phép. Ta sẽ đảo ngược logic: đếm lại chính xác:1lẻ,6chẵn,4lẻ,3lẻ,dlẻ → 4 ký tự lẻ → không thể. Tuy nhiên nếu thử sắp xếp:1D6-4-6D1đọc xuôi ngược đều giống nhau, vậy kết quả là .