回文子串

给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。
回文字符串 是正着读和倒过来读一样的字符串。
子字符串 是字符串中的由连续字符组成的一个序列。

  • 输入:s = “abc”
    输出:3
    解释:三个回文子串: “a”, “b”, “c”

  • 输入:s = “aaa”
    输出:6
    解释:6 个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const isPalindrome = (s) => {
let i = 0;
let j = s.length - 1;
while (i < j) {
if (s[i] != s[j]) return false;
i++;
j--;
}
return true;
};

const countSubstrings = (s) => {
let count = 0;
for (let i = 0; i < s.length; i++) {
for (let j = i; j < s.length; j++) {
if (isPalindrome(s.substring(i, j + 1))) {
count++;
}
}
}
return count;
};