目录
一.让字符串变成回文的最少插入次数
1.对应letecode链接:
2.题目描述:
3.解题思路:
方法一:暴力递归
对应这种回文串问题了一般都是这个范围上的尝试模型,一般都考虑开头和结尾的情况怎么搞:下面我们来分析可能性
注意:递归含义是字符串从[L…R]范围上变成回文字符串的最小插入代价
可能性一:以abcd为例
对应这个字符串我们发现它的开头和结尾不相等,我们可以在a的前面添加一个字符d在加上abc变成回文的最小插入次数。
可能性二:在d的后面添加一个字符a:
可能性3:开头和结尾相等:
对应代码:
class Solution { public: int minInsertions(string s) { return process(s,0,s.size()-1); } //递归含义字符串str从[L.....R]范围变成回文串的最小代价 int process(const string&str,int L,int R) { if(L==R)//只有一个字符必然是回文 { return 0; } if(L==R-1)//两个字符如果相等不需要插入不等插入一个即可 { return st