题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。
解题思路
建立一个哈希表,第一次扫描的时候,统计每个字符的出现次数。第二次扫描的时候,如果该字符出现的次数为1,则返回这个字符的位置。
代码实现(c )
class solution {
public:
int firstnotrepeatingchar(string str) {
int length = str.size();
if(length == 0){
return -1;
}
map item;
for(int i = 0; i < length; i ){
item[str[i]] ;
}
for(int i = 0; i < length; i ){
if(item[str[i]] == 1){
return i;
}
}
return -1;
}
};
代码实现
# -*- coding:utf-8 -*-
class solution:
def firstnotrepeatingchar(self, s):
# write code here
length = len(s)
if length == 0:
return -1
item = {}
for i in range(length):
if s[i] not in item.keys():
item[s[i]] = 1
else:
item[s[i]] = 1
for i in range(length):
if item[s[i]] == 1:
return i
return -1