导航

LeetCode 387. First Unique Character in a String

Posted on 2016-09-21 01:35  CSU蛋李  阅读(333)  评论(0编辑  收藏  举报

Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

Examples:

s = "leetcode"
return 0.

s = "loveleetcode",
return 2.

 

Note: You may assume the string contain only lowercase letters.

题目:在一个字符串中,找出第一个不重复字母的索引,如果不存在,则返回-1

 

class Solution {
public:
    int firstUniqChar(string s) {
        map<char, int> map;
        for (auto &e : s)
        {
            ++map[e];
        }
        char first = ' ';
        int position = INT_MAX;
        for (auto &e : map)
        {
            if (e.second == 1)
            {
                first = e.first;
                int current_position = s.find_first_of(first);
                if (current_position < position)
                    position = current_position;
            }
        }
        if (position != INT_MAX)
            return position;
        else return -1;
    }
};