1var shortestPalindrome = function (s) {2const rev = s.split("").reverse().join("");3const slen = s.length;45const z = s + "$" + rev;6const zlen = z.length;78const lpt = new Array(zlen).fill(0);910for (let i = 1; i < zlen; i++) {11let j = lpt[i - 1];1213while (j > 0 && z.charAt(i) != z.charAt(j)) j = lpt[j - 1];1415if (z.charAt(i) == z.charAt(j)) j++;1617lpt[i] = j;18}1920return rev.slice(0, slen - lpt.at(-1)) + s;21};