一、解题心得
遇到回文串问题,一个最基本的思路就是要先知道区间 [i, j] 的字符串是不是回文串,这非常非常重要!!!后面我们慢慢体会。
所以首要任务是怎么求得 [i, j] 区间的回文信息,这里会用一道例题解决这个问题。
647. 回文子串 - 力扣(LeetCode)
注释很清楚,不解释。
二、例题
一、最长回文子串
5. 最长回文子串 - 力扣(LeetCode)
利用回文 dp 表双层 for 循环遍历,遇到 true 更新长度。
二、分割回文串(三次分割)
1745. 分割回文串 IV - 力扣(LeetCode)
利用回文 dp 表双指针分成三个部分判断是否都是 true
三、分割回文串(多次分割)
132. 分割回文串 II - 力扣(LeetCode)
四、最长回文子序列
516. 最长回文子序列 - 力扣(LeetCode)
不同于上面题目,还有一种更新 dp[i][j] 的办法就是考虑 [i, j - 1] 和 [i + 1, j]
五、成为回文字符串的最少改变次数
1312. 让字符串成为回文串的最少插入次数 - 力扣(LeetCode)