1
var countPalindromicSubsequence = function (s) {2
const charToIndices = {};3
for (let i = 0; i < s.length; i++) {5
if (charToIndices[char]) {6
charToIndices[char].push(i);8
charToIndices[char] = [i];13
for (const currChar in charToIndices) {14
if (charToIndices[currChar].length < 2) continue;15
const currCharIndices = charToIndices[currChar];16
const firstIndex = currCharIndices[0];17
const lastIndex = currCharIndices[currCharIndices.length - 1];19
for (const char in charToIndices) {20
const indices = charToIndices[char];22
let hi = indices.length;24
const mid = (lo + hi) >> 1;25
if (indices[mid] <= firstIndex) {31
if (indices[lo] && indices[lo] < lastIndex) {