问题
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
例子
思路
== 最后以字符串s的顺序查找谁是第一个==
- map
- 数组 快多的
代码
//map
Map<Character,Integer> map = new HashMap<>();
for(int i=0; i<s.length(); i++) {
map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);
}
int res=-1;
for(int i=0; i<s.length();i++) {
int n = map.getOrDefault(s.charAt(i),-1);
if(n==1) {
res=i;
break;
}
}
//数组
int[] arr=new int[26];
for(int i=0; i<s.length(); i++)
arr[s.charAt(i)-'a']+=1;
for(int i=0; i<s.length();i++)
if(arr[s.charAt(i)-'a']==1)
return i;
return -1;