Easy c++ solution must see


#1

bool ispalindrome(string s)
{
int i=0,j=s.length()-1;
while(i<j){
if(s[i]!=s[j]) return false;
i++,j–;
}
return true;
}
int Solution::minCut(string A) {
int n=A.length();
int dp[n];
for(int i=0;i<n;i++) dp[i]=INT_MAX;
for(int l=0;l<n;l++)
{
if(ispalindrome(A.substr(0,l+1)))
dp[l]=0;
else{
for(int i=0;i<l;i++)
{
if(ispalindrome(A.substr(i+1,l-i)))
dp[l]=min(dp[l],1+dp[i]);
}
}
}
return dp[n-1];
}


#2

can you explain last loop