Given a string, find the firstnon-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 thestring contain only lowercase letters.
翻译:给定一个字符创,找到字符串中第一个不重复的字符,并且返回它的索引位置。题目不难,一开始我用了两重循环,结果通过了。看了一下其他人的解法,又联想到了桶排序,解法很好。利用了字母的26个字母,而且题目给出假定字符串中的字符全部是小写。我写了两种方法,代码如下:
public class Solution {
public int firstUniqChar(String s) {
/* List<Character> ls=newArrayList();
/* String s="loveleetcode";
for(int i=0;i<s.length();i++){
ls.add(s.charAt(i));
}
int result=-1;
boolean flag=true;
for(inti=0;i<s.length()&&flag;i++){
result=i;
flag=false;
for(int j=0;j<s.length();j++){
if(ls.get(j)==s.charAt(i)&&j!=i){
flag=true;
result=-1;
break;
}
}
}
return result;*/
int a[]=new int[26];
int count=-1;
for(inti=0;i<s.length();i++){
a[s.charAt(i)-'a']++;
}
for(inti=0;i<s.length();i++){
if(a[s.charAt(i)-'a']==1){
count=i;
break;
}
}
return count;
}
}