第一个只出现一次的字符

题目描述

在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        if(str.size()== 0)
            return -1;
        const int tablesize = 256;
        unsigned int hashTable[tablesize];
        for(unsigned int i = 0; i < tablesize; i++){
            hashTable[i] = 0;
        }
        
        string::iterator iter = str.begin();
        while(iter!=str.end()){
            hashTable[*iter]++;
            iter++;
        }
        
        int index = 0;
        iter = str.begin();
        while(iter!=str.end()){
            if(hashTable[*iter] ==1){
                index= iter-str.begin();     
                break;
            }
            iter++;
        }
        
        return index;
    }
};

 

posted on 2017-02-27 03:45  123_123  阅读(100)  评论(0编辑  收藏  举报