制作回文字符串所需的最小追加数

时间:2018-06-28 09:45:12

标签: c++

我尝试在采访中使用递归来解决这个问题。他们说这种解决方案效率不高。如何使代码更高效?

#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);
}

0 个答案:

没有答案