1
var longestPalindrome = function (words) {2
const n = words.length;7
for (const word of words) {8
const backward = word.split("").reverse().join("");10
if (map.has(backward)) {11
len += word.length * 2;12
map.set(backward, map.get(backward) - 1);14
if (map.get(backward) === 0) map.delete(backward);16
if (!map.has(word)) map.set(word, 0);17
map.set(word, map.get(word) + 1);21
let maxLenSelfPalindrome = 0;23
for (const word of map.keys()) {24
if (isPalindrome(word)) {25
maxLenSelfPalindrome = Math.max(maxLenSelfPalindrome, word.length);29
return len + maxLenSelfPalindrome;31
function isPalindrome(word) {33
let right = word.length - 1;35
while (left < right) {36
if (word[left] != word[right]) return false;