qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

C++编程:小红的字符串变身回文串之探秘

时间2023-08-19 17:14:02 提问来自 未知 的网友 分类创作 浏览436
以下是用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, " ")] = '\0'; // 去掉换行符 if (isPalindrome(str)) { printf("YES "); } else { printf("NO "); } } return 0; } ``` 这个程序首先定义了一个`isSymmetric`函数,用于判断两个字符是否是轴对称的关系。然后定义了一个`isPalindrome`函数,用于判断一个字符串是否是回文串。最后,在`main`函数中,根据输入的询问次数,循环读取每个字符串,并调用`isPalindrome`函数进行判断,然后输出结果。 请注意,这个程序假设输入的字符串只包含小写字母,并且长度不超过100000。如果输入的字符串包含其他字符,可能会导致程序出错。

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 用Java编写算法:判断字符串经特定操作后能否变为回文串 下一篇 国内江苏佳禾输送设备科技有限公司怎么样?