给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事项:您可以假定该字符串只包含小写字母。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解法一:数组模拟HashMap
class Solution {
public int firstUniqChar(String s) {
char[] str = s.toCharArray();
int[] count = new int[26];
int len = s.length();
for(int i = 0; i < len; i++){
count[str[i]-'a']++;
}
for(int i = 0; i < len; i++){
if(count[str[i]-'a'] == 1) return i;
}
return -1;
}
}
解法二:首次出现和最后一次出现重合
class Solution {
public int firstUniqChar(String s) {
int result = s.length();
for(char i = 'a'; i <= 'z'; i++) {
int index = s.indexOf(i);
if(index != -1 && s.lastIndexOf(i) == index){
if(index < result) result = index;
}
}
if(result != s.length()) return result;
else return -1;
}
}