ID:647.回文子串

30 阅读1分钟

题目

给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。

回文字符串 是正着读和倒过来读一样的字符串。

子字符串 是字符串中的由连续字符组成的一个序列。

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。

题解

中心扩散法即可

var countSubstrings = function(s) {
    let i = 0, j = 0, isOdd = true, num = 0, k = 0;
    while(k < s.length) {
        i = k;
        j = isOdd ? k : ++k;
        while(s[i] === s[j] && i >= 0 && j < s.length) {
            num++; i--; j++;
        };
        isOdd = !isOdd;
    }
    return num;
};