经典题型
最长回文子串
给你一个字符串s,找到s中最长的回文子串。
示例1:
1 | 输入:s = "babad" |
示例2:
1 | 输入:s = "cbbd" |
提示:
- 1<=s.length<=1000
- s仅由数字和英文字母组成
代码
1 |
最长回文子序列
给你一个字符串s,找出其中最长的回文子序列,并返回该序列的长度。
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。
示例1:
1 | 输入:s = "bbbab" |
示例2:
1 | 输入:s = "cbbd" |
提示
- 1<=s.length<=1000
- s仅由小写英文字母组成
回文子字符串的个数
给定一个字符串s,请计算这个字符串中有多少个回文子字符串
具有那个开始位置或结束位置的子串,即使是由相同的字符组成,也会被视为不同的子串。
示例1:
1 | 输入:s = "abc" |
示例2:
1 | 输入:s = "aaa" |
提示:
- 1<=s.length<=1000
- s由小写英文字母组成
统计不同回文子序列
给定一个字符串s,返回s中不同的非空【回文子序列】个数
通过从s中删除0个或多个字符来获得子序列
如果一个字符序列与它反转后的字符序列一致,那么它是【回文字符序列】。
如果有某个i,满足ai!=bi,则两个序列a1,a2,…和b1,b2,…不同。
注意:
- 结果可能很大,你需要对10的9次方+7取模
示例1:
1 | 输入:s = 'bccb' |
示例2:
1 | 输入:s = 'abcdabcdabcdabcdabcdabcdabcdabcddcbadcbadcbadcbadcbadcbadcbadcba' |
提示:
- 1<=s.length<=1000
- s[i]仅包含’a’,’b’,’c’或’d’