wordpress上不去,莱芜网站优化费用,青岛美工网页设计,如何推广普通话的建议6条个人主页#xff1a;兜里有颗棉花糖 欢迎 点赞#x1f44d; 收藏✨ 留言✉ 加关注#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 #x1f354;本专栏旨在提高自己算法能力的同时#xff0c;记录一下自己的学习过程#xff0c;希望… 个人主页兜里有颗棉花糖 欢迎 点赞 收藏✨ 留言✉ 加关注本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 本专栏旨在提高自己算法能力的同时记录一下自己的学习过程希望对大家有所帮助 希望我们一起努力、成长共同进步。 目录 1️⃣题目描述2️⃣题目解析3️⃣解题代码 1️⃣题目描述
给定一个包含大写字母和小写字母的字符串 s 返回 通过这些字母构造成的 最长的回文串 。
在构造过程中请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。
示例1 输入:s “abccccdd” 输出:7 解释: 我们可以构造的最长的回文串是dccaccd, 它的长度是 7。 示例2 输入:s “a” 输出:1 示例3 输入:s “aaaaaccc” 输出:7 注意
1 s.length 2000s 只由小写 和/或 大写英文字母组成
2️⃣题目解析
通过数组模拟哈希表将字符串中每个字符出现的次数记录下来然后计算回文串中能够成对的字符个数。每个字符能够成对的个数就是其出现次数除以 2 的结果再乘以 2。最后判断所有能够成对的字符数是否小于原字符串长度如果小于则说明可以选取一个单独的字符作为回文串的中心使得最终回文串长度加 1。
3️⃣解题代码
class Solution {
public:int longestPalindrome(string s) {int hash[127] { 0 };for(char x : s) hash[x];int ret 0;for(int x : hash) ret x / 2 * 2;return ret ret s.size() ? ret 1 : ret;}
};最后就通过啦