哪里错了?
查看原帖
哪里错了?
1050683
YoungL楼主2023/9/29 09:51

代码如下:

#include <bits/stdc++.h>

using namespace std;

int dp[1001][1001];
string s1, s2;

int do_dp() {
    for (int i=1; i<=s1.size(); i++) {
        for (int j=1; j<=s2.size(); j++) {
            if (s1[i-1] == s2[j-1]) {
                dp[i][j] = dp[i-1][j-1] + 1;
            } else {
                dp[i][j] = max(dp[i-1][j], dp[j-1][i]);
            }
        }
    }
    return s1.size() - (dp[s1.size()][s2.size()]);
}

int main() {
    cin >> s1;
    s2 = s1;
    reverse(s2.begin(), s2.end());
    cout << do_dp() << endl;
    return 0;
}
2023/9/29 09:51
加载中...