本来想用HashMap做查找的,结果看了看高票答案发现用Map好像多此一举了[[[[为了不浪费还是把代码贴上来了
问题链接:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/5/strings/34/
HashMap代码:
public int firstUniqChar(String s) {
int res=-1;
char[] chars = s.toCharArray();
HashMap<Character,Integer> h = new HashMap<>();
for(int i= 0;i<chars.length;i++){
h.put(chars[i],i);
}
for(int i=0;i<chars.length;i++){
if(h.containsKey(chars[i])&&h.get(chars[i])!=i){
h.remove(chars[i]);
}
if(h.containsKey(chars[i])&&h.get(chars[i])==i){
res=i;
break;
}
}
return res;
}
IndexOf代码:
public int firstUniqChar(String s) {
int res=-1;
for(int i=0;i<s.length();i++){
char b=s.charAt(i);
int begin=s.indexOf(b);
int end=s.lastIndexOf(b);
if(begin==end&&begin!=-1){
res=begin;
break;
}
}
return res;
}