【数据结构与算法 | 哈希表篇】力扣387
1. 力扣387:字符串中的第一个唯一字符
1.1 题目:
给定一个字符串 s
,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1
。
示例 1:
输入: s = "leetcode" 输出: 0
示例 2:
输入: s = "loveleetcode" 输出: 2
示例 3:
输入: s = "aabb" 输出: -1
提示:
1 <= s.length <= 105
s
只包含小写字母
1.2 思路:
用哈希表的键表示遇到的字符,用值表示遇到的字符个数。
1.3 题解:
class Solution {public int firstUniqChar(String s) {HashMap<Character, Integer> hashmap = new HashMap<>();for (int i = 0;i < s.length(); i++) {char ch = s.charAt(i);if (!hashmap.containsKey(ch)){// 第一次遇到该字符,值为1hashmap.put(ch, 1);} else {// 更新hashmap.put(ch, hashmap.get(ch) + 1);}}for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);// 逐一找到字符,而且字符在字符串的个数是1if(hashmap.containsKey(ch) && hashmap.get(ch) == 1){return i;}}return -1;}
}