我尝试在采访中使用递归来解决这个问题。他们说这种解决方案效率不高。如何使代码更高效?
#include <iostream>
#include<cstring>
using namespace std;
int palin(char str[], int len)
{
static int cnt;
int s = 0;
int e = len - 1;
while(s < e){
if(str[s] != str[e]) {
cnt++;
return palin(str + 1, len - 1);
}
else{
s++;
e--;
}
}
return cnt;
}
int main() {
char str[100];
cin.getline(str, 100);
int len = strlen(str);
cout << palin(str, len);
}