class Solution {
public:
bool huiwen(string s){
for(int i=0;i<s.length();i++){
if(s[i]!=s[s.length()-1-i]) return false;
}
return true;
}
int minCut(string s) {
int n = s.length();
int dp[n+1];
dp[0] = -1;
dp[1] = 0;
for(int i=2;i<=n;i++){
dp[i] = dp[i-1] + 1;
for(int j=0;j<i-1;j++){
if(huiwen(s.substr(j,i-j))){
dp[i] = min(dp[i],dp[j]+1);
}
}
}
return dp[n];
}
};
动态规划。