zoukankan      html  css  js  c++  java
  • [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;
    }
  • 相关阅读:
    AJAX学习笔记
    JQuery 学习笔记-2017.05.22
    十二.GUI
    十一.文件
    十.模块和库
    九.类的进化(魔法方法、特性和迭代器)
    八.异常
    七.类的继承
    六.函数和类
    五.条件、循环和其他语句
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6985450.html
Copyright © 2011-2022 走看看