Series ℍ𝔾𝔹ℂ𝕡𝕡_'s - 2026 - Contest #1 - Được không ta?

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 700 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: palim.inp Output: palim.out

Một ngày ở trên lớp của algorit của p2o2HuaGiaBao. Anh ta cảm thấy kiệt sức vô cùng sau cả nghìn bài tập về đồ thị phải làm. Bổng nhiên em hàng xóm, hỏi cậu ấy một bài code khó, nhưng anh ta không muốn làm gì thêm nữa nên đành nhờ các bạn hướng dẫn em nó. Đề bài như sau: Cho một xâu \(S\) có độ dài \(|S|\). Hãy cho biết xâu này có phải là xâu chỉ có thể có tối đa một thao tác để biến nó thành xâu đối xứng. Xâu chỉ gồm cái kí tự chữ cái in thường và chữ số (đúng cùng nhau).
Định nghĩa:

  • Xâu đối xứng là xâu viết từ trái sang phải và ngược lại đều như nhau. Ví dụ: abcba hay level còn 123 hay meomeo là không phải.
  • Một thao tác là khi ta thay đổi chính xác \(1\) kí tự trong xâu

Input

  • Gồm một dòng duy nhất là một xâu \(S\)
  • \(1\le |S|\le 2\times 10^5\)

Output

  • In ra YES nếu phải còn NO nếu không.

Example

Test 1

Input
abbc
Output
YES
Note

Có thể đổi kí tự c sang a để biến abbc thành abbalà xâu đối xứng.

Test 2

Input
12a45
Output
NO
Note

Cần ít nhất \(2\) lượt thao tác để chuyển xâu 12a45 thành xâu đối xứng.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.