给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。
注意: 假设字符串的长度不会超过 1010。
示例 1:
输入: "abccccdd"
输出: 7
解释: 我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/longest-palindrome 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
出现>=2 次的字符,一共可以组成多长的子串 判断是否还有剩余,决定加一还是不加
var longestPalindrome = function (s) {
let set = new Set();
let len = 0;
for (let c of s) {
if (set.has(c)) {
len += 2;
set.delete(c);
} else {
set.add(c);
}
}
if (set.size > 0) len += 1;
return len;
};