LeetCode 409 Longest Palindrome
来源:互联网 发布:2017年中国m2数据 编辑:程序博客网 时间:2024/05/21 08:47
题目:
Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.
This is case sensitive, for example "Aa"
is not considered a palindrome here.
Note:
Assume the length of given string will not exceed 1,010.
Example:
Input:"abccccdd"Output:7Explanation:One longest palindrome that can be built is "dccaccd", whose length is 7.题目链接
题意:
给一个字符串,由大写字母和小写字母组成,找到可组成的最长回文串的长度,并将长度返回,在本题中,区分大小写,且所给字符串的长度不超过1010。
原本是搜索或枚举题,加上“可组成”后,变成了思路题,所有字母的顺序可变,也就是说假如单个字母的个数是偶数,那么一定可以全部用上,假如是奇数,那么整个字符串只能用一个奇数,那就是在最中间的位置,所以可以先进行统计,之后把所有字母的数量向下取偶在求和,与所有字符的总数进行比较,假如相同,说明该字符串所有字母的个数都是偶数,都可以用得到,假如不相同,说明存在有字母个数为奇数的情况,这种情况下可组成长度最大的情况为ABA型,只能允许有单个奇数存在,所以为之前统计的向下取偶的和加1。
代码
class Solution {public: int longestPalindrome(string s) { int ans = 0, dic[200]; memset(dic, 0, sizeof dic); for (char c : s) dic[c] ++; for (int i = 0; i < 200; i++) { ans += dic[i] / 2; } return ans*2 == s.length() ? s.length() : ans * 2 + 1; }};
阅读全文
0 0
- LeetCode[409] Longest Palindrome
- leetcode-409-Longest Palindrome
- LeetCode 409 Longest Palindrome
- Leetcode 409 Longest Palindrome
- [LeetCode-409]Longest Palindrome(java)
- leetcode 409 Longest Palindrome C++
- 【LeetCode】 Longest Palindrome Substring
- 【Leetcode】Longest Palindrome Substring
- 【Leetcode】Longest Palindrome
- 【Leetcode】Longest palindrome substring
- 【Leetcode】409. Longest Palindrome
- [LeetCode]409. Longest Palindrome
- LeetCode 409. Longest Palindrome
- [LeetCode]--409. Longest Palindrome
- leetcode 409. Longest Palindrome
- LeetCode 409. Longest Palindrome
- LeetCode : Longest Palindrome
- LeetCode 409. Longest Palindrome
- Java:按值传递还是按引用传递
- Hbuilder less自动编译
- C++(类)
- 强类型语言与弱类型语言
- 食物链(POJ-1182)
- LeetCode 409 Longest Palindrome
- (十二)Redux:进阶(存储本地state)
- 【平面图判定+2-SAT验证】BZOJ1997 [Hnoi2010]Planar
- 2017.7.30 日记 省赛总结
- K近邻法之kd树及其Python实现
- 第一天
- 文件属性
- RNN中BPTT的推导和可能的问题
- 软件安装与配置yum仓库