剑指Offer——第一个只出现一次的字符位置

时间:2023-03-09 00:26:49
剑指Offer——第一个只出现一次的字符位置

题目描述:

在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。

分析:

用一个数组统计每个字符出现的次数。

再次扫描数组,如果找到第一个字符次数为1的,那么返回它的位置。

代码:

 class Solution {
public:
int FirstNotRepeatingChar(string str) {
int strLen = str.length();
int times['z' + ];
memset(times, , sizeof(int) * ('z' + ));
for(int i = ; i < strLen; i++) {
times[str[i]]++;
}
for(int i = ; i < strLen; i++) {
if(times[str[i]] == ) {
return i;
}
}
return -;
}
};