第一个只出现一次的字符

题目描述

在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置

class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        if (str.size() == 0) {
            return -1;
        }
        vector<vector<int>> tag(256, vector<int>(2, 0)); 
        for (int i = 0; i < str.size(); ++i) {
            int ind = str[i] - 'A';
            tag[ind][0] = i;//记索引
            ++tag[ind][1];//计数
        }
        int ans = str.size();
        
        for (auto t : tag) {
            if (t[1] == 1 && ans > t[0]) {
                ans = t[0];
            }
        }
        return ans;
    }
};

posted on 2017-03-20 16:07  jec  阅读(124)  评论(0编辑  收藏  举报

导航