第一个只出现一次的字符

来源:互联网 发布:网络打鱼游戏版本费 编辑:程序博客网 时间:2024/06/05 12:02
在一个字符串(1<=字符串长度<=10000)中找到第一个只出现一次的字符。
返回:
1.字符在字符串的位置

2.当字符串长度为0时,返回-1


class Solution {public:int FirstNotRepeatingChar(string str) {map<char,int> m;        int num[256];//用来存放str中不同的字符        int pos[256];//用来存放不同字符在str中的位置        int k = 0;        for(int i = 0; i < 256; i++)            pos[i] = -1;        for(int i = 0; i < str.length(); i++){            if(m[str[i]] != NULL)            m[str[i]]++;            else{                pos[str[i]+128] = i;                m[str[i]] = 1;                num[k++] = str[i];            }        }        for(int i = 0; i < k; i++){            if(m[num[i]] == 1)                return pos[num[i]+128];        }        return -1;}};


0 0