First Unique Character in a String

First Unique Character in a String

题目描述:

给定一个字符串,找到字符串中第一个只出现一次的那个字符。

例子:

具体描述见LeetCode387

解题思路:

我们用一个数组记录数最后位置出现位置信息,用一个数组记录字符出现的次数信息。而后再遍历次数数组找到最早出现的那个字符位置即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
int firstUniqChar(string s) {
int res = -1;
vector<int> vec(26, -1);
vector<int> num(26, 0);
for (int i = 0; i < s.size(); i++){
if (vec[s[i] - 'a'] == -1) vec[s[i] - 'a'] = i;
num[s[i] - 'a']++;
}
for (int i = 0; i < 26; i++){
if (num[i] == 1 && res == - 1) res = vec[i];
else if (num[i] == 1 && res != -1) res = min(res, vec[i]);
}
return res;
}
};