题目链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string/
题目描述
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
测试用例
示例:
s = "leetcode" 返回 0 s = "loveleetcode" 返回 2
提示:你可以假定该字符串只包含小写字母。
题解
题目简单。两种方法:
(1)Map。
(2)数组计数。
代码
// Map
class Solution {
public int firstUniqChar(String s) {
Map<Character, Integer> fre = new HashMap<Character, Integer>();
int len = s.length();
for (int i = 0; i < len; i++){
char ch = s.charAt(i);
fre.put(ch, fre.getOrDefault(ch, 0)+1 );
}
for (int i = 0; i < len; i++){
if (fre.get(s.charAt(i)) == 1){
return i;
}
}
return -1;
}
}
// 数组计数
class Solution {
public int firstUniqChar(String s) {
int[] fre = new int[26];
int len = s.length();
for (int i = 0; i < len; i++)
fre[s.charAt(i)-'a']++;
for (int i = 0; i < len; i++)
if (fre[s.charAt(i)-'a'] == 1)
return i;
return -1;
}
}