链接:https://leetcode-cn.com/problems/minimum-insertion-steps-to-make-a-string-palindrome/
找出字符串中的最长回文子序列(不是子串),再用字符串长度减去这个长度就是最终结果。
C++代码:
class Solution {
public:
int minInsertions(string s) {
vector<vector<int>> dp(s.size(),vector<int>(s.size(),0));
for(int i = s.size()-1;i>=0;i--)
{
for(int j = i;j<s.size();j++)
{
if(i==j)
dp[i][j] = 1;
else
{
if(s[i]==s[j])
dp[i][j] = dp[i+1][j-1]+2;
else
dp[i][j] = max(dp[i+1][j],dp[i][j-1]);
}
}
}
return s.size()-dp[0][s.size()-1];
}
};
本文介绍了一种求解最少插入次数使字符串成为回文的方法,通过找出字符串中的最长回文子序列,然后用字符串长度减去这个长度得到最终结果。提供了详细的C++代码实现。
824

被折叠的 条评论
为什么被折叠?



