解决这个问题的关键在于如何判断一个字符是否对称,以及如何判断一个字符对是否对称。我们可以观察到,题目已经给出了单个对称的字符和一对互相对称的字母。因此,我们可以将这些信息存储在一个哈希表中,其中键是字符,值是它的对称字符。
然后,我们遍历字符串的每一个字符,对于每一个字符,我们查找它的对称字符,然后检查这个对称字符是否和字符串反转后的对应位置的字符相同。如果所有的字符都满足这个条件,那么字符串就是对称的,否则就不是。
C++
小红得到了若干个字符串,请你判断字符串是否为对称串。
定义一个字符串为对称串当且仅当该字符串反转后和原串完全相同。例如:poq、owo、bod 是对称的,而 aba 不是对称的。
提示:单个对称的字符有:xwmnilouv
,一对互相对称的字母有:p,q
、b,d
。
第一行一个整数 T(1≤T≤100),表示询问次数。
接下来 T 行每行一个由小写字母组成的字符串,长度小于等于100。
对于每次询问,如果该字符串是对称的,输出 Yes
,否则输出 No
。
3
bpovoqd
aaaa
poq
Yes
No
Yes