题目描述
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
用一个256长度的数组存储字符,遍历整个字符串,把下标放到数组中,相同下标的计数加一,之后查找数组中为一的下标为出现一次的字符,之后在数组中寻找这个字符,记录位置,找到位置最前的返回即可。
class Solution {
public:
int FirstNotRepeatingChar(string str) {
if(str.size()<=0)
return -1;
char save[256]={0};
for(auto c:str)
{
++save[c];
}
char a;
int min=10000000;
for(int i=50;i!=128;++i)
{
if(save[i]==1){
a=i;
for(int j=0;j!=str.size();++j)
{
if(str[j]==a&&j<min){
min=j;
break;
}
}
}
}
return min;
}
};