最长回文串

给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。

🌰:

  1. 输入:s = "abccccdd"
  2. 输出:7
  3. 解释:
  4. 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7
输入:s = "a"
输入:1
输入:s = "bb"
输入: 2

解题过程⌨

  1. 使用贪心算法,计算每个字符的出现次数。
    /**
    * @param {string} s
    * @return {number}
    */
    var longestPalindrome = function (s) {
     let code = {}
     for (let c of s) {
         if (!code[c]) code[c] = 0;
         code[c]++;
     }
     let result = 0
     for (let key in code) {
         result += Math.floor(code[key] / 2) * 2
         if (code[key] % 2 === 1 && result % 2 === 0) {
             result++
         }
     }
     return result
    };