• [LeetCode] Longest Palindrome


    Given an integer array, find three numbers whose product is maximum and output the maximum product.

    Example 1:

    Input: [1,2,3]
    Output: 6

    Example 2:

    Input: [1,2,3,4]
    Output: 24

    Note:

    1. The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
    2. Multiplication of any three numbers in the input won't exceed the range of 32-bit signed integer.

    求给定字母组成的最长回文串,使用map记录元素出现的次数。回文串的长度如果是偶数,则其中出现的每种字母都是偶数个,如果是奇数,则只可能出现一种字母的个数为奇数个,其余每种字母个数为偶数个。所以如果map中字母出现偶数个,则这些字母都可以组成回文串,如果map中字母出现奇数个,则将其次数-1,并加入回文串中。最后判断在回文串中由出现奇数次字母组成的个数,如果这个数大于1,则在结果中+1,最长回文串尺寸为奇数,否则直接返回结果。

    class Solution {
    public:
        int longestPalindrome(string s) {
            unordered_map<char, int> m;
            for (char c :s)
                m[c]++;
            int res = 0;
            int odd = 0;
            for (auto it = m.begin(); it != m.end(); it++) {
                if (it->second % 2 == 0) {
                    res += it->second;
                }
                else {
                    res += (it->second - 1);
                    odd++;
                }
            }
            return (odd > 0 ? res + 1 : res);
        }
    }; 
    // 6 ms
  • 相关阅读:
    SQL函数说明大全
    (火炬)MS SQL Server数据库案例教程
    SQL 数据库基础语句
    java 中length,length(),size()的区别
    关于webLogic启动问题
    dreamweaver读jsp时遇到的问题
    Microsoft 注册表编辑器 (regedit.exe)
    由正则表达式REGEXP_REPLACE开始
    Hello World
    Python基础目录
  • 原文地址:https://www.cnblogs.com/immjc/p/7195825.html
Copyright © 2020-2023  润新知