LeetCode(五)387. First Unique Character in a String&409. Longest Palindrome
来源:互联网 发布:highcharts more.js 编辑:程序博客网 时间:2024/06/05 18:56
387. First Unique Character in a String
题目要求如下
Given a string, find the first non-repeating character in it and
return it’s index. If it doesn’t exist, return -1.Examples:
s = “leetcode” return 0.
s = “loveleetcode”, return 2.
Note: You may assume the string contain
only lowercase letters.
题目解法如下
public class Solution { public int firstUniqChar(String s) { int freq[]=new int[26]; for(int i=0;i<s.length();i++){ freq[s.charAt(i)-'a']++; } for(int i=0;i<s.length();i++){ if(freq[s.charAt(i)-'a']==1) return i; } return -1; }}
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.
要求最长的回文数,大小写敏感
参考上一题,我的解法如下
public class Solution { public int longestPalindrome(String s) { int[]alphabet=new int[58]; for(int i=0;i<s.length();i++){ alphabet[s.charAt(i)-'A']+=1; } int count=0; for(int j=0;j<58;j++){ if(alphabet[j]>1){ if(alphabet[j]%2==0){ count+=alphabet[j]; } else{ count+=alphabet[j]-1; } } } return count==s.length()?count:count+1; }}
也可以使用两个int[26]集合
public int longestPalindrome(String s) { int[] lowercase = new int[26]; int[] uppercase = new int[26]; int res = 0; for (int i = 0; i < s.length(); i++){ char temp = s.charAt(i); if (temp >= 97) lowercase[temp-'a']++; else uppercase[temp-'A']++; } for (int i = 0; i < 26; i++){ res+=(lowercase[i]/2)*2; res+=(uppercase[i]/2)*2; } return res == s.length() ? res : res+1;}
使用HashSet的方法
public int longestPalindrome(String s) { if(s==null || s.length()==0) return 0; HashSet<Character> hs = new HashSet<Character>(); int count = 0; for(int i=0; i<s.length(); i++){ if(hs.contains(s.charAt(i))){ hs.remove(s.charAt(i)); count++; }else{ hs.add(s.charAt(i)); } } if(!hs.isEmpty()) return count*2+1; return count*2;}
HashSet和HashMap的区别
参考链接: Javarevisited 翻译: ImportNew.com - 唐小娟
译文链接: http://www.importnew.com/6931.html
- LeetCode(五)387. First Unique Character in a String&409. Longest Palindrome
- [Leetcode]First Unique Character in a String
- LeetCode: First Unique Character in a String
- LeetCode-First Unique Character in a String
- leetcode---First Unique Character in a String
- leetcode:First Unique Character in a String
- LeetCode-First Unique Character in a String
- [Leetcode] First Unique Character in a String
- leetcode First Unique Character in a String
- Leetcode First Unique Character in a String
- LEETCODE--First Unique Character in a String
- LeetCode -- First Unique Character in a String
- LeetCode : First Unique Character in a String
- LeetCode First Unique Character in a String
- LeetCode-----First Unique Character in a String
- LeetCode—387. First Unique Character in a String
- 【leetcode】387. First Unique Character in a String【E】
- <LeetCode OJ> 387. First Unique Character in a String
- 代码REVIEW
- 怎样学习嵌入式Linux
- 实现判断商品折扣价格
- 工作中小细节总结(六)
- gabor
- LeetCode(五)387. First Unique Character in a String&409. Longest Palindrome
- adb常用命令总结
- muduo源码学习(3)-原子操作
- 基于PhoneGap的iOS平台入门教程
- [我的计划]
- [Go]程序结构——赋值
- 【SpringBoot系列】二:SpringBoot配置详解
- 在BAT工作和创业公司工作有什么不同的体验?
- 我们在谈论web/web应用/web开发时,到底再说什么?