【LeetCode相关题目】
问题需求:找到字符串s中所有的回文子串
有两种常用解法:
一、中心拓展法
中心拓展法即为双指针法:枚举每个可能的拓展中心,左右指针所指元素相同则拓展(左--,右++),否则停止,需要处理奇偶拓展中心的问题,用i遍历0到2n-2即可,li=i/2,ri=li+i%2。在i为偶数的情况下,回文串长度为奇数,li==ri,否则ri=li+1。
拓展条件:li>=0&&ri<=n-1&&s.charAt(li)==s.charAt(ri)(此处注意前一个条件不成立则不会往后验证,故将数组边界控制条件放在前面,s.charAt(li)放在后面,顺序反了会爆边界溢出的错误哦~)
以647.回文子串举例,统计所有子串数量,附上代码:
public int countSubstri