Leetcode 字符串中的第一个唯一字符
地址:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/5/strings/34/
题目
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事项:您可以假定该字符串只包含小写字母。
我的解决方案
class Solution {
public:
int firstUniqChar(string s) {
int addr = -1; //保存第一个不重复的字符的索引并初始化为-1
if (s.size() == 1)
addr = 0;
for (int i = 0; i < s.size(); i++) { //遍历整个字符串的每一个字符
bool isUniq = true; //判断当前字符s[i]是否唯一
for (int j = 0;j < s.size(); j++) {
if (i == j)
continue;
if (s[j] == s[i]) { //如果找到与s[i]相同的字符
isUniq = false; //说明s[i]不唯一,置isUniq为false
break;
}
}
if (isUniq == true) { //isUniq为true说明上面的循环中没有找到与s[i]相同的字符
addr = i; //i即第一个不重复的字符的索引
break; //后序字符不必不能继续判断,否则如果后续还有唯一字符就会重写addr导致结果错误
}
}
return addr;
}
};
Leetcode 字符串中的第一个唯一字符
https://mxy493.xyz/2019020146060/