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

来源:互联网 发布:深圳java培训要多少钱 编辑:程序博客网 时间:2024/05/16 06:17

华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/10/5

题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始

解析:全部由字母组成的字符串,字母也就那么几个,计数排序的思路即可。

class Solution {public:    int FirstNotRepeatingChar(string str)    {        int n=str.size();        if(n<=0)            return -1;        int count[256]={0};        int i;        for(i=0;i<n;i++)        {            count[str[i]]++;        }        i=0;        while(str[i]!='\0')        {            if(count[str[i]]==1)                return i;            i++;        }        if(i==n)            return -1;    }};
0 0
原创粉丝点击