本文共 674 字,大约阅读时间需要 2 分钟。
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0s = “loveleetcode”
返回 2提示:你可以假定该字符串只包含小写字母。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
遍历第一遍字符串,利用散列表进行重复字符的统计;然后再遍历一遍字符串,找到第一个不重复的字符。
由于本题字符串只包含小写字母,因此可以直接利用数组统计重复字符。
class Solution { public: int firstUniqChar(string s) { vector array(26, 0); for (auto c: s) { array[c-'a'] += 1; } for (int i = 0; i< s.length(); i++) { if(array[s[i]-'a'] == 1) { return i; } } return -1; }};