首页 > AI文库 >

用C++写: 小红有一个字符串,她可以进行以下操作 ·拆分。把w'拆成2个v, m 拆成2个n。 。轴对称。把"b'轴对称成d’,p轴对称成q,反之亦然。 ·翻转。把b翻

分享 12485
以下是用C语言编写的解决方案:

```c
#include <stdio.h>
#include <string.h>

int isSymmetric(char c1, char c2) {
if ((c1 == 'w' && c2 == 'v') || (c1 == 'v' && c2 == 'w') ||
(c1 == 'm' && c2 == 'n') || (c1 == 'n' && c2 == 'm') ||
(c1 == 'b' && c2 == 'd') || (c1 == 'd' && c2 == 'b') ||
(c1 == 'p' && c2 == 'q') || (c1 == 'q' && c2 == 'p')) {
return 1;
}
return 0;
}

int isPalindrome(char* str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (!isSymmetric(str[i], str[len - i - 1])) {
return 0;
}
}
return 1;
}

int main() {
int T;
scanf("%d", &T);
getchar(); // 读取换行符

for (int i = 0; i < T; i++) {
char str[100001];
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 去掉换行符

if (isPalindrome(str)) {
printf("YES\n");
} else {
printf("NO\n");
}
}

return 0;
}
```

这个程序首先定义了一个`isSymmetric`函数,用于判断两个字符是否是轴对称的关系。然后定义了一个`isPalindrome`函数,用于判断一个字符串是否是回文串。最后,在`main`函数中,根据输入的询问次数,循环读取每个字符串,并调用`isPalindrome`函数进行判断,然后输出结果。

请注意,这个程序假设输入的字符串只包含小写字母,并且长度不超过100000。如果输入的字符串包含其他字符,可能会导致程序出错。

相关推荐

中国经济实现高质量发展具备哪些显著优势论文1500字

AI文库

世界变乱交织,中国笃行担当 变革动荡 大国关系 中国智慧 上述内容分别为大标题和三个小标题,请以此写出不少于2000字的形式与政策论文,要求内容充实具体,不存在抄袭、、雷同情况

AI文库

假如你是形式与政策这个课程的一名学生,请以“世界变乱多织,中国笃行担当”为主题,写一篇论文,要求完全按照论文的格式,字数一定在2500字以上!

AI文库

请结合《走好新时代科技自立自强之路》专题和今年2月8日广东省高质量发展大会聚焦产业科技话创新、谋未来主题,谈谈你对党的二十大提出的“科技强国”战略的认识及行动

AI文库

国家安全为什么与你我息息相关论文不少于1500

AI文库

热门图文

上一篇:小红每天下班后都会去小红书直播。已知她第i天上班的时间为a¡小时,下班后直播的时间为b;小时。小红每上班1小时会增加x的焦虑度,每直播1小时会降低y的焦虑度。小红想知道,第n天结束时,焦虑度为多少?请

下一篇:可对字符串中的字符进行如下操作:w可以拆成两个v,m可以拆成两个n,而b、p、q、d间可以相互转换;n与u间可以相互转换;用java写一个算法,判断输入的字符串在经过以上操作后是否可以将原字符串变为回