Xâu s-palindrome

Đề bài

Mô tả

Một xâu được gọi là s-palindrome (đối xứng gương) nếu nó đối xứng qua đường thẳng đứng đi qua giữa xâu, theo nghĩa: khi soi gương (đảo trái–phải) thì nhận lại đúng chính nó.

Để định nghĩa rõ ràng, gọi mirror(c) là kí tự thu được khi soi gương kí tự c. Trong bảng chữ cái tiếng Anh, các quy ước được dùng là:

  • Các kí tự đối xứng với chính nó (tức mirror(c)=c): A, H, I, M, O, o, T, U, V, v, W, w, X, x, Y.
  • Các cặp kí tự đối xứng lẫn nhau: bd, pq.
  • Tất cả các kí tự khác không có ảnh gương hợp lệ trong bảng chữ cái tiếng Anh.

Một xâu s độ dài n là s-palindrome khi và chỉ khi với mọi 0i<n, ta có mirror(si)=sn1i (kèm điều kiện si phải có ảnh gương hợp lệ).

Cho xâu s, hãy xác định s có phải s-palindrome hay không.

Dữ liệu vào

Một dòng duy nhất chứa xâu s chỉ gồm các chữ cái tiếng Anh (hoa hoặc thường).

Dữ liệu ra

In ra TAK nếu s là s-palindrome, ngược lại in ra NIE.

Ràng buộc

  • 1|s|1000.

Ví dụ

Input Output Giải thích
oXoxoXo TAK Tất cả các kí tự o, X, x đều tự đối xứng nên xâu đối xứng qua giữa.
bod TAK Cặp (b, d) là cặp đối xứng và o tự đối xứng.
ER NIE E và R đều không có ảnh gương trong bảng chữ cái nên xâu không thể là s-palindrome.
AA TAK A tự đối xứng, do đó cặp (A, A) hợp lệ.
aa NIE Chữ thường a không có ảnh gương hợp lệ.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0