一、给定字符串,分割出所有可能的的字符串
回溯算法,类似组合问题,但是每个字符只能使用一次
判断回文串方法
二、计算回文子串数量
1、回溯算法:求出每个回文子串,然后计算数量
2、动态规划:dp[i][j]含义:表示区间范围【i,j】(左闭右闭)的子串是否为回文子串
递推公式:
三、最长回文子序列
给定字符串,找出最长的回文子序列
dp数组含义 dp[i][j]:字符串在【i,j】范围内最长的回文子序列的长度
四、最长的回文子串
判断为回文串之后,加一个长度的处理,记录最长的回文子串对应的i,j下表
五、分割回文子串
给定一个字符串s,将 s 分割成一些子串,使每个子串都是回文。
返回符合要求的 最少分割次数 。
动态规划解决:
dp[i]:范围是[0, i]的回文子串,最少分割次数是dp[i]。
初始化,因为求的是min即最少,所以初始化为INT_MAX或者如下
递推公式
,dp[i] = dp[j] + 1;