[leetcode-409-Longest Palindrome]

Posted hellowOOOrld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode-409-Longest Palindrome]相关的知识,希望对你有一定的参考价值。

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:
7

Explanation:
One longest palindrome that can be built is "dccaccd", whose length is 7.

思路:

用一个map记录每一个字符出现的次数,偶数次可以直接用来形成回文串,奇数次需要减去1,然后再最后结果上加上1个字符能够形成最长的回文串。

int longestPalindrome(string s) 
{
  if(s.size()<=1)return s.size();
  map<char,int>mp;
  for(char ch : s)
  {
    mp[ch]++;
  }
  int length = 0,odd = 0;
  for(auto it = mp.begin();it!=mp.end();it++)
  {
    if(it->second %2 ==1)
    {
      odd = 1;
      length+= it->second -1
    }
    else length+= it->second ;
  }
  length +=odd;
  return length;
}

 


以上是关于[leetcode-409-Longest Palindrome]的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode-409-Longest Palindrome]

LeetCode——409. Longest Palindrome

leetcode-409-Longest Palindrome(统计字母出现次数)

Leetcode 409. Longest Palindrome

PAL 安装报错及必备条件说明

一次性登录 Pay-pal [关闭]