请问为啥这样只有70,是哪里有问题嘛
#include<bits/stdc++.h>
using namespace std;
#define endl "\n"
typedef long long LL;
typedef pair<int,int> PII;
int T;
char s[55];
int f[55][55];
int work(int l,int r)
{
if(f[l][r]!=-1)return f[l][r];
if(l==r)return 1;
int tmp=1e9+7;
//在左端涂色
if(s[l]==s[l+1])tmp=min(tmp,work(l+1,r));
else tmp=min(tmp,work(l+1,r)+1);
//在右端涂色
if(s[r]==s[r-1])tmp=min(tmp,work(l,r-1));
else tmp=min(tmp,work(l,r-1)+1);
//两边一起涂色
if(s[l]==s[r]&&r-l>=2)
{
if(s[l+1]==s[r-1]&&s[l]==s[l+1])tmp=min(tmp,work(l+1,r-1));
else tmp=min(tmp,work(l+1,r-1)+1);
}
return f[l][r]=tmp;
}
void solve(int C)
{
cin>>s+1;
int n=strlen(s+1);
memset(f,-1,sizeof f);
cout<<work(1,n);
}
int main()
{
solve(1);
return 0;
}