60分求助
查看原帖
60分求助
558202
gogei楼主2023/11/23 21:50
#include <bits/stdc++.h>
using namespace std;
#define int long long
char s[1005];
int f[1005][1005];
signed main()
{
    scanf("%s", s + 1);
    int l = strlen(s + 1);
    memset(f, 0x3f, sizeof(f));
    for (int i = 1; i <= l; i++)
        f[i][i] = 0;
    for (int j = 2; j <= l; j++)
    {
        for (int i = 1; i + j - 1 <= l; i++)
        {
            if (s[i] == s[i + j - 1])
                f[i][i + j - 1] = min(f[i][i + j - 1], f[i + 1][i + j - 2]);
            else
                f[i][i + j - 1] = min(f[i + 1][i + j - 1] + 1, f[i][i + j - 2] + 1);
        }
    }
    cout << f[1][l];
    return 0;
}

评测记录

2023/11/23 21:50
加载中...