[Leetcode] 387. 字符串中的第一个唯一字符 java hashmap与ASCII码
2018-11-12 13:41
357 查看
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
[code]s = "leetcode" 返回 0. s = "loveleetcode", 返回 2.
注意事项:您可以假定该字符串只包含小写字母。
第一种方法(hashmap略慢)
[code]class Solution { public int firstUniqChar(String s) { HashMap<Character,Integer> map=new HashMap<Character,Integer>(); if(s==null) return -1; for(int i=0;i<s.length();i++){//把s的元素放进哈希表。该字符出现几次,value就等于几 if(map.containsKey(s.charAt(i))) map.put(s.charAt(i),map.get(s.charAt(i))+1); else{ map.put(s.charAt(i),1); } } for(int i=0;i<s.length();i++){ if(map.get(s.charAt(i))==1) return i;//找到等于1的,马上返回 } return -1; } }
第二种方法(ASCII码 稍快)
[code]class Solution { public int firstUniqChar(String s) { int count[]=new int[26];//初始化数组,用来存放字符重复次数 for(int i=0;i<s.length();i++){ count[s.charAt(i)-'a']++; } for(int i=0;i<s.length();i++){ if(count[s.charAt(i)-'a']==1) return i; } return -1; } }
阅读更多
相关文章推荐
- leetcode-字符串中的第一个唯一字符
- LeetCode 387. First Unique Character in a String (字符串中的第一个唯一字符)
- [LeetCode] 387. First Unique Character in a String 字符串的第一个唯一字符
- 【leetcode】 字符串中的第一个唯一字符
- LeetCode 387 字符串中的第一个唯一字符【简单】
- 在一个字符串中找到第一个只出现一次的字符(java实现)
- LeetCode242_Valid Anagram(判断两个字符串是不是由完全一样字符组成) Java题解
- 算法--06谷歌面试:字符串中第一个只出现一次的字符(Java实现)
- 在一个字符串中找到第一个只出现一次的字符(java实现)
- 在一个字符串中找到第一个只出现一次的字符(java实现)
- (1.4.5.1)Java编程题——在一个字符串中查找第一个非重复的字符
- 【Java笔试题】输出字符串中第一个不重复的字符
- 华为OJ ---找出字符串中第一个只出现一次的字符(java实现)
- java实现如何在字符串中找到第一个不重复的字符
- JAVA实现 剑指offer—求字符串中第一个只出现一次的字符
- Java的indexOf返回的是第一个匹配到的字符的索引位置,substring(a,b)获得字符串的一部分内容
- 【算法学习】求字符串中第一个出现最少的字符(java)
- 用java实现,查找字符串中第一个没有重复出现的字符
- java实现--字符串中第一个单独出现的字符
- LeetCode number387 字符串第一个没有相同的字符