Longest Palindrome by Concatenating Two Letter Words LeetCode solution in JavaScript

1
var longestPalindrome = function (words) {
2
const n = words.length;
3
const map = new Map();
4

5
let len = 0;
6

7
for (const word of words) {
8
const backward = word.split("").reverse().join("");
9

10
if (map.has(backward)) {
11
len += word.length * 2;
12
map.set(backward, map.get(backward) - 1);
13

14
if (map.get(backward) === 0) map.delete(backward);
15
} else {
16
if (!map.has(word)) map.set(word, 0);
17
map.set(word, map.get(word) + 1);
18
}
19
}
20

21
let maxLenSelfPalindrome = 0;
22

23
for (const word of map.keys()) {
24
if (isPalindrome(word)) {
25
maxLenSelfPalindrome = Math.max(maxLenSelfPalindrome, word.length);
26
}
27
}
28

29
return len + maxLenSelfPalindrome;
30

31
function isPalindrome(word) {
32
let left = 0;
33
let right = word.length - 1;
34

35
while (left < right) {
36
if (word[left] != word[right]) return false;
37
left++;
38
--right;
39
}
40

41
return true;
42
}
43
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0