题目描述
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
//牛客网的题目有时候经常通不过,非常重要的一点是,返回值,输入错误,输入正确,无结果都要有返回值,否则很多时候编译不通过
设置256的数组是因为字符都是8位的ascl值到256如果只有大写字母还可以在少一些
a-z:97-122
A-Z:65-90
0-9:48-57
class Solution {
public:
int FirstNotRepeatingChar(string str)
{
int len=str.length();
if(len<=0||len>10000)return -1;//这个地方要返回值
int times[256];
for(int j=0;j<256;j++)
times[j]=0;
for(int i=0;i<len;i++)
{
times[str[i]]++;
}
//return 1;
int k=0;
while(k<len)
{
if( times[str[k]] == 1)
return k;//正确返回值
k++;
}
return -1;//不存在情况时的返回值
}
};