functionfindMinCharsToPalindrome(strA) { let str = [...strA].reverse().join(""); let stack = []; let flag = false; for (let i = 0, len = str.length; i < len; i++) { if (stack[stack.length - 1] === str[i]) { stack.pop() flag = true; console.log('推出', stack); } else { stack.push(str[i]); console.log('入栈', stack); } }
let res = stack.join(""); return flag ? strA + res : strA + res.slice(1); }
console.log("ab", findMinCharsToPalindrome("ab")); /* ab aba */ console.log("abc", findMinCharsToPalindrome("abc")); /* abc abcba */ console.log("abcc", findMinCharsToPalindrome("abcc")); /* abcc abccba */