给定一个字符串s,将s分割成一些子串,使每个子串都是回文串,返回符合要求的最少分割次数
class Solution {
public:
int minCut(string s) {
int n =s.size();
vector<int>f(n,n-1);
auto update = [&f,&s,n](int l,int r)mutable{
while(0<=l&&r<n&&s[l]==s[r]){
if(l!=0){
f[r] = min(f[r],f[l-1]+1);
}else{
f[r] = 0;
}
--l,++r;
}
};
for(int i=0;i<n;i++){
update(i,i);
update(i,i+1);
}
return f[n-1];
}
};