c++递归实现对称字符串
时间: 2023-11-27 17:03:07 浏览: 120
对称字符串
可以先判断字符串长度是否为偶数,如果不是,则肯定不是对称字符串;如果是,则从字符串两端开始递归判断是否对称,具体实现代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool isSymmetric(char* str, int len) {
if (len % 2 != 0) { // 长度为奇数,不是对称字符串
return false;
}
if (len == 2) { // 长度为2,判断两个字符是否相等
return str[0] == str[1];
}
if (str[0] != str[len - 1]) { // 首尾字符不相等,不是对称字符串
return false;
}
return isSymmetric(str + 1, len - 2); // 递归判断剩余子串是否对称
}
int main() {
char str[100];
cout << "请输入字符串:";
cin >> str;
if (isSymmetric(str, strlen(str))) {
cout << "是对称字符串" << endl;
} else {
cout << "不是对称字符串" << endl;
}
return 0;
}
```
这里使用递归实现,每次比较首尾字符是否相等,如果相等则递归判断去掉首尾字符后的子串是否对称,直到字符串长度为2或者不是对称字符串为止。
阅读全文