编程题
镜像回文 ## 来源 South Central USA 1995 (ZOJ1325, POJ1590) ## 题目描述 回文串就是从前往后读与从后往前读完全一样的字符串,如"ABCDEDCBA"。 所谓镜像字符串,就是将字符串中的每个字符转换成它的相反字符(如果该字符存在相反字符的话)后,得到的字符串从后往前读,跟原来的字符串一样。例如,各字符的相反字符如表4.2所示,则"3AIAE"就是一个镜像字符串,各字符转换成其相反字符后,变成"EAIA3",这个字符串从后往前读,就是原来的字符串。 镜像回文就是同时满足回文字符串和镜像字符串条件的字符串。例如,"ATOYOTA"就是一个镜像回文,因为这个字符串从后往前读跟原来的字符串是一样的,并且将字符串中的每个字符用它的相反字符替换,得到的字符串为"ATOYOTA",该字符串从后往前读,跟原来的字符串也一样。当然,在这个字符串里,字符"A","T","O"和"Y"的相反字符都是它们本身。 在本题中,字符串中允许出现的有效字符和它们对应的相反字符如表4.2所示。 ![图片描述](https://doc.shiyanlou.com/courses/uid1791927-20220314-1647223354989) 注意:数字'0'和字符'O'被认为是同一个字符,因此只有字符'O'才是有效的字符。 ## 输入描述 输入文件中包含多个字符串,每行一个,每个字符串包含1\~20个有效字符,每个字符串中都不包含无效的字符。输入数据一直到文件尾。 ## 输出描述 对每个字符串,首先从第1列开始输出字符串本身,然后根据情况输出以下字符串之一: " -- is not a palindrome." 如果这个字符串既不是回文,也不是镜像字符串。 " -- is a regular palindrome." 如果这个字符串是回文,但不是镜像字符串。 " -- is a mirrored string." 如果这个字符串不是回文,但它是镜像字符串。 " -- is a mirrored palindrome." 如果这个字符串既是回文,也是镜像字符串。 每个测试数据的输出之后有一个空行。 ## 样例输入 ```txt NOTAPALINDROME ISAPALINILAPASI 2A3MEAS ATOYOTA ``` ## 样例输出 ```txt NOTAPALINDROME -- is not a palindrome. ISAPALINILAPASI -- is a regular palindrome. 2A3MEAS -- is a mirrored string. ATOYOTA -- is a mirrored palindrome. ```
查看答案
赣ICP备20007335号-2