1
var palindromePairs = function (words) {4
for (let i = 0; i < words.length; i++) wmap.set(words[i], i);5
for (let i = 0; i < words.length; i++) {7
for (let j = 0; j < words.length; j++)8
if (isPal(words[j]) && j !== i) ans.push([i, j], [j, i]);11
let bw = words[i].split("").reverse().join("");12
let res = wmap.get(bw);13
if (res !== undefined && res !== i) ans.push([i, res]);14
for (let j = 1; j < bw.length; j++) {15
if (isPal(bw, 0, j - 1)) {16
let res = wmap.get(bw.slice(j));17
if (res !== undefined) ans.push([i, res]);20
let res = wmap.get(bw.slice(0, j));21
if (res !== undefined) ans.push([res, i]);28
const isPal = (word, i = 0, j = word.length - 1) => {29
while (i < j) if (word[i++] !== word[j--]) return false;