#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <assert.h>
#include <set>
#include <xfunctional>
using namespace std;
int LCS(const string &str1, const string &str2) {
if (str1 == "" || str2 == "")
return 0;
else if (str1.back() == str2.back())
return LCS(str1.substr(0, str1.size() - 1), str2.substr(0, str2.size() - 1)) + 1;
else
return max(LCS(str1.substr(0, str1.size() - 1), str2.substr(0, str2.size())),
LCS(str1.substr(0, str1.size()), str2.substr(0, str2.size() - 1)));
}
int main() {
string str1;
while (cin >> str1) {
string str2(str1);
reverse(str1.begin(), str1.end());
cout << str1.length() - LCS(str1, str2);
}
}
数据结构与算法--LCS
最新推荐文章于 2022-03-18 14:26:20 发布