博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode409.Longest Palindrome
阅读量:6996 次
发布时间:2019-06-27

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

题目要求

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:7Explanation:One longest palindrome that can be built is "dccaccd", whose length is 7.

输入一个字符串,计算用这个字符串中的值构成一个最长回数的长度是多少。

思路和代码

这是一道easy难度的题目,但是一次性写对也有挑战。直观来看,我们立刻就能想到统计字符串中每个字符出现的次数,如果该字符出现次数为偶数,则字符一定存在于回数中。但是我们忽略了一点,即如果字符中存在一个额外的单个字符位于中间,该字符串也能构成回数,如aabaa。这个细节需要注意。

下面是O(N)时间的实现:

public int longestPalindrome(String s) {        int[] count = new int[52];        int max = 0;        for(char c : s.toCharArray()) {            if(c>='a' && c<='z'){                count[c-'a']++;                if(count[c-'a'] % 2 == 0) {                    max +=2;                }            }                        if(c>='A' && c<='Z'){                count[c-'A' + 26]++;                if(count[c-'A'+26] % 2 == 0) {                    max += 2;                }            }        }                if(max < s.length()) {            max++;        }        return max;    }

转载地址:http://ubzvl.baihongyu.com/

你可能感兴趣的文章
Jquery DataTables相关示例
查看>>
HihoCoder第三周与POJ2406:KMP算法总结
查看>>
利用python+seleniumUI自动化登录获取cookie后再去测试接口,今天终于搞定了
查看>>
《自动化技术中的进给电气传动》读书笔记一
查看>>
【转】UGUI实现unity摇杆
查看>>
setjmp与longjmp非局部跳转函数的使用
查看>>
jqgrid 加入右键菜单按钮管理
查看>>
Redis集群的主从切换研究
查看>>
养成良好的编程习惯
查看>>
编译hadoop的libhdfs.a
查看>>
PHP简易计算器方法2
查看>>
意见整理
查看>>
Linux安装Tomcat,运行Eclipse,web项目
查看>>
计算机网络笔记
查看>>
mysql 查重复数据
查看>>
【c学习-10】
查看>>
GNU make 总结 (四)
查看>>
poj1611(并查集简单应用)
查看>>
python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例)
查看>>
asp.net web 通过IHttpAsyncHandler接口进行消息推送
查看>>