class Solution {
public int minCut(String s) {
int n=s.length();
int[] dp=new int[n+1];
for(int i=0;i<n+1;i++)dp[i]=i;
dp[1]=1;
dp[0]=0;
for(int i=2;i<n+1;i++){
for(int j=1;j<=i;j++){
if(check(s.substring(j-1,i))){
dp[i]=Math.min(dp[i],dp[j-1]+1);
}
}
}
return dp[n]-1;
}
private boolean check(String str){
return str.equals(new StringBuilder(str).reverse().toString());
}
}