预处理长度为2以内的字符串
剩下交给dp
class Solution {
public:
int minInsertions(string s) {
int N = s.length();
vector<vector<int>> dp(N,vector<int>(N,N));
for(int i=0;i<N-1;i++){
dp[i][i+1] = s[i] == s[i+1]?0:1;
dp[i][i] = 0;
}
dp[N-1][N-1] = 0;
for(int R = 0 ; R<N;R++){
for(int L = R-2;L>=0;L--){
if(s[L] == s[R]) dp[L][R] = dp[L+1][R-1];
else dp[L][R] = min(dp[L+1][R],dp[L][R-1]) + 1;
}
}
return dp[0][N-1];
}
};