1、回文子串-647
题目:
给你一个字符串 s
,请你统计并返回这个字符串中 回文子串 的数目。
回文字符串 是正着读和倒过来读一样的字符串。
子字符串 是字符串中的由连续字符组成的一个序列。
示例 1:
输入:s = "abc" 输出:3 解释:三个回文子串: "a", "b", "c"
示例 2:
输入:s = "aaa" 输出:6 解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"
思路:找出回文中心 向两边延申,判断是否是回文字符串,每移动一次res++;这是因为aca是回文子串,bacab也是回文子串,且要考虑边界值,使用方括号 [] 访问超出范围的索引会返回 undefined。要用charAt去处理l和r为负数的情况
题解:
javascript">var countSubstrings = function(s){let res = 0;let n = s.length;
for(let i = 0;i<2*n-1;i++){ //对于字符串s有2n-1的回文中心let l = i/2;let r = i/2+i%2;
if(s.charAt(l)==s.charAt(r)&&l>=0&&r<n){res++;l++;r--;
}
}
return res;
}