【最大回文長度】
阿新 • • 發佈:2018-07-30
find 計算 序列 ring esp tchar ret stream font
#include<iostream> #include<string> using namespace std; //遞歸方法,求解最長回文子序列 int find_str(char *str, int i, int j) { if (i == j) return 1; //只有一個元素,回文長度為1 if (i > j) return 0; //因為只計算序列str[i....j] //如果首尾相同 if (str[i] == str[j]) return find_str(str, i + 1, j - 1) + 2; //如果首尾不同 int left=find_str(str, i, j - 1); int right=find_str(str, i + 1, j); if(left>right)return left; else return right; } int main() { char str[] = "cabbeaf"; int n = strlen(str); int res = find_str(str, 0, n - 1); cout << res<< endl; getchar(); return 0; }
【最大回文長度】