class Solution {
public:
int FirstNotRepeatingChar(string str) {
if(str.length() == 0)
return -1;
int len = str.length();
int temp;
int num[52];
memset(num, 0, sizeof(num));
bool f[52];
memset(f, false, sizeof(f));
int first[52];
for(int i = 0; i < len; i++)
{
temp = str[i] - 'a';
if(str[i] <= 'Z' && str[i] >= 'A')
temp += 48;
if(f[temp] == false)
{
first[temp] = i;
f[temp] = true;
}
}
memset(f, false, sizeof(f));
for(int i = 0; i < len; i++)
{
temp = str[i] - 'a';
if(str[i] <= 'Z' && str[i] >= 'A')
temp += 48;
num[temp]++;
if(f[temp] == false)
{
f[temp] = true;
}
}
int minnum = 10005;
for(int i = 0; i < 52; i++)
{
if(f[i] == true && num[i] == 1)
minnum = minnum > first[i] ? first[i] : minnum;
}
if(minnum == 10005)
return -1;
return minnum;
}
};
剑指offer 第一个只出现一次的字符位置
最新推荐文章于 2022-11-26 17:50:26 发布