剑指offer 第一个只出现一次的字符

题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回
-1(需要区分大小写)


思路分析:
1.创建一个数组来存储次数,初始话为零

2.将每个字符的ascii值作为数组的下标,遍历一遍,如果遇到就加一。

3.再遍历一遍,将次数为一的返回,否则返回-1;


代码如下:

class Solution {
public:
    int FirstNotRepeatingChar(string str) {
       if(str.size()==0)
       {
        return -1;
       }
        int a[256]={0};
        for(int i=0;i<str.size();i++)
        {
            a[str[i]]++;
        }
        for(int i=0;i<str.size();i++)
        {
            if(a[str[i]]==1)
            {
                return i;
            }
        }
        return -1;
    }
};
原文地址:https://www.cnblogs.com/YenKoc/p/12779962.html