博客
关于我
leetcode之最长回文串
阅读量:447 次
发布时间:2019-03-06

本文共 941 字,大约阅读时间需要 3 分钟。

转:

本文主要记录一下leetcode之最长回文串

题目

给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindrome著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

class Solution {    public int longestPalindrome(String s) {        Map      countMap = new HashMap<>();        for (char c : s.toCharArray()) {            countMap.put(c, countMap.getOrDefault(c, 0) + 1);        }        int result = 0;        for (Integer value : countMap.values()) {            if (value % 2 == 0) {                result = result + value;            } else {                result = result + value / 2 * 2;                if (result % 2 == 0) {                    result++;                }            }        }        return result;    }}

小结

这里先统计一下每个字符的个数,之后对于偶数个直接累加,对于奇数个先累加偶数部分,最后再判断结果是否是偶数,若是偶数则剩余的一个奇数可以算进去。

doc

  • 最长回文串

转:

你可能感兴趣的文章
Elastic Stack-Elasticsearch使用介绍(二)
查看>>
Salesforce学习之路(十)Aura组件工作原理
查看>>
Salesforce学习之路(十三)Aura案例实战分析
查看>>
从源码角度来分析线程池-ThreadPoolExecutor实现原理
查看>>
Vcastr3.0开源在线flv播放器
查看>>
.NET Core HttpClient+Consul实现服务发现
查看>>
手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
查看>>
ASP.NET Core中间件初始化探究
查看>>
垃圾回收器之标记擦除法
查看>>
链接收藏
查看>>
学习案例【更新中】
查看>>
【感想文】不再惧怕被伤害,要正面回应
查看>>
H5中调起微信这么实现,如果未安装则提示未安装
查看>>
龙珠超的新OP【限界突破×サバイバー】
查看>>
ECharts模拟迁徙案例
查看>>
【译】巧用CSS变量实现自动前缀
查看>>
第一次真正接触滑板,很难,这能成为我的一个新兴趣吗?
查看>>
非常不错的一些前端动态效果【收集】
查看>>
翻唱 - shape of you - 个个版本
查看>>
ES6知识整理(2)--变量的解构赋值
查看>>