Given a string, find the first non-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 the string contain only lowercase letters.
public class Solution {
public int firstUniqChar(String s) {
int flag=0;
if(s.length()==1)return flag;
for(int i=0;i<s.length();i++){
for(int j=0;j<s.length();j++){
if(i==j)continue;
flag=-1;
char a=s.charAt(i),b=s.charAt(j);
if(a==b){
flag=-2;
break;
}
}
if(flag==-1)return i;
}
return -1;
}
}
这道题是找出字符串中单独的一个字母,根据字母只有26个,因此可以设一个26字母数组,字符串中字母反映在所设字母表上,最终总结
public class Solution {
public int firstUniqChar(String s) {
int[] table=new int[26];
for(int i=0;i<s.length();i++){
table[s.charAt(i)-'a']++;//s.charAt(i)-'a'使用数字指代第i个字母在字母表中的位置
}
for(int i=0;i<s.length();i++){
if(table[s.charAt(i)-'a']==1)return i;//table[s.charAt(i)-'a']指代第i个字母在字母表中出现的个数
}
return -1;
}
}