您的位置:首页 > 其它

第一个只出现一次的字符位置

2016-03-21 17:41 260 查看


题目描述

在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始

设置一个哈希表,把每个字符当成索引,对应的值为出现的次数,先遍历一遍,统计出每个字符出现的次数,然后再通过遍历找到该字符的在字符串中的位置

class Solution {
public:
int FirstNotRepeatingChar(string str){
if(str.empty())
return -1;
const int tableSize = 256;
unsigned int hashTable[tableSize] = {0};

for(unsigned int i = 0; i < str.size(); i ++){
hashTable[str[i]] ++;
}
for(unsigned int i = 0; i < str.size(); i ++){
if(hashTable[str[i]] == 1)
return i;
}
return -1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  哈希表