leetcode387:First Unique Character in a String
来源:互联网 发布:owncloud源码 编辑:程序博客网 时间:2024/05/20 20:04
要求:找出第一个在字符串中没有重复的字符,返回它在字符串中的位置。
例如:“leetcode'” 返回0
“loveleetcode”返回2
注意:一开始直接暴力破解,遍历数组,将除了当前元素a[i]以外的所有元素放入set集合中,如果这个set也包含一个与a[i]相同的元素,那么继续下一次循环。如果set中没有一个元素与a[i]相同,那么立马返回i。 这种方法可以达到目的,但是字符串比较长时,时间会超过限制,因为每一次都要将除去a[i]以外的所有元素变成set,需要n*(n-1)次遍历,所以当字符串比较长时,时间会超过限制。
之后考虑时间问题,循环之间不能嵌套,特别是在遍历整个数组的的时候。因此想到使用HashMap,这种Map要求key值不能重复,我们使用HashMap来记录字符串中每个字符出现的次数,字符作为Key,出现的次数作为value。再遍历字符串,当第一次发现某个a[i]的value=1时,返回这个i即可。注意判断字符串为空这种情况。
public int firstUniqChar(String s) {Map<Character, Integer> hashMap=new HashMap();char[] a=s.toCharArray();int result=0;if(s.length()==0)return -1;hashMap.put(a[0], 1);for(int i=1;i<a.length;i++){if(hashMap.containsKey(a[i]))hashMap.put(a[i], 2);elsehashMap.put(a[i], 1);}char flag='a';for(int i=0;i<a.length;i++){if(hashMap.get(a[i])==1)return i;}return -1;}
0 0
- LeetCode387. First Unique Character in a String
- leetcode387:First Unique Character in a String
- Leetcode387. First Unique Character in a String
- LeetCode387 First Unique Character in a String
- LeetCode387—First Unique Character in a String
- first unique character in a string
- 152.First Unique Character in a String
- [Leetcode]First Unique Character in a String
- 387. First Unique Character in a String
- First Unique Character in a String
- LeetCode: First Unique Character in a String
- First Unique Character in a String
- 387.First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- LeetCode-First Unique Character in a String
- leetcode---First Unique Character in a String
- 解答MySQL字段类型varchar和char最核心的两大疑问
- StarUML使用说明-指导手册
- Linux学习笔记(第八、九、十一)
- 1117. Eddington Number(25)
- SecureCRT上传下载
- leetcode387:First Unique Character in a String
- CSS设置图片符号
- 【 洛谷P1073 】【NOIP2009】最优贸易
- 最小生成树-POJ 1258 Agri-Net
- Hello,world!
- C语言详细介绍----初识C语言
- cmd介绍
- Linux统计文件数目
- 关于python如何删掉字符中的\t\r\n