1.最长回文串
题目:
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。
注意:
假设字符串的长度不会超过 1010。
思路:记录每个字符出现的次数,对于偶数的字符,直接加上出现的次数,对于奇数的字符,加上减一的次数。最后判断是否出现过奇数的字符,如果出现过至少一次,结果再加一
/**
* @param {string} s
* @return {number}
*/
var longestPalindrome = function(s) {
const map = new Map();
for (const i of s) {
map.set(i, (map.get(i) || 0) + 1);
}
let res = 0;
let flag = false;
for (const i of map.values()) {
if (i % 2) {
res += i - 1;
if (!flag) {
res += 1;
flag = true;
}
} else {
res += i;
}
}
return res;
};
2.Fizz Buzz
题目:
写一个程序,输出从 1 到 n 数字的字符串表示。
1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz