Palindromic Substrings
Problem statement
Given a string s, return the number of palindromic substrings in it.
A string is a palindrome when it reads the same backward as forward.
A substring is a contiguous sequence of characters within the string.
Example 1:
Input: s = "abc"Output: 3Explanation: Three palindromic strings: "a", "b", "c".
Example 2:
Input: s = "aaa"Output: 6Explanation: Six palindromic strings: "a", "a", "a", "aa", "aa", "aaa".
Constraints:
1 <= s.length <= 1000sconsists of lowercase English letters.
My solution
/**
* @param {string} s
* @return {number}
*/
var countSubstrings = function(s) {
let count = 0;
function expand(str, left, right) {
if (!str || left > right) {
return 0;
}
while (left >= 0 && right < str.length && (str.charAt(left) === str.charAt(right))) {
count++;
left--
right++;
}
}
for (let i = 0; i < s.length; i++) {
expand(s, i, i)
expand(s, i, i + 1)
}
return count;
};