首页 > 考试 > 其他 > 正文
【Leetcode】409. Longest Palindrome
2017-01-01       个评论    来源:举头天外望,无我这般人  
收藏    我要投稿

【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.

思路:
easy 统计每种字符出现次数,分奇偶情况讨论。

算法:

    public int longestPalindrome(String s) {
        if (s.length() == 0)
            return 0;
        int lm[] = new int[26];
        int um[] = new int[26];

        for (char c : s.toCharArray()) {
            if (Character.isLowerCase(c))
                lm[c - 'a']++;
            else
                um[c - 'A']++;
        }

        int count = 0;
        boolean flag = false;// 是否有单个字符

        for (int num : lm) {
            if (num % 2 == 0) {
                count += num;
            } else {
                if (flag) {
                    count += num - 1;
                } else {
                    count += num;
                    flag = true;
                }
            }
        }

        for (int num : um) {
            if (num % 2 == 0) {
                count += num;
            } else {
                if (flag) {
                    count += num - 1;
                } else {
                    count += num;
                    flag = true;
                }
            }
        }

        return count;

    }
点击复制链接 与好友分享!回本站首页
上一篇:HDU 5833
下一篇:Codeforces 374 Div2
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站