1
var countSubstrings = function (s) {3
const dp = [...Array(n)].map(() => Array(n).fill(false));6
// Base case: single letter substrings7
for (let i = 0; i < n; i++) {12
// Base case: double letter substrings13
for (let i = 0; i < n - 1; i++) {14
dp[i][i + 1] = s[i] === s[i + 1];15
dp[i][i + 1] && count++;18
// substrings longer than 2 chars19
for (let len = 3; len <= n; len++) {21
end = start + len - 1;24
dp[start][end] = dp[start + 1][end - 1] && s[start] === s[end];25
dp[start][end] && count++;