[leetcode] 387. First Unique Character in a String

来源:互联网 发布:天津三叶网络 编辑:程序博客网 时间:2024/06/16 02:25

Question:

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.

Solution:

扫描一遍记录每个字母个数,扫描第二遍发现个数为1的就返回。不知道还有没有更简单的方法,这个方法没什么技术含量。
时间复杂度: O(n)
空间复杂度: O(n)

class Solution {public:    int firstUniqChar(string s) {        if (s.size() == 0) {            return -1;        }        map<char, int> m;        for (int i = 0; i < s.size(); i++) {            if (m.find(s[i]) == m.end()) {                m[s[i]] = 1;            } else {                m[s[i]]++;            }        }        for (int i = 0; i < s.size(); i++) {            if (m[s[i]] == 1) {                return i;            }        }        return -1;    }};
原创粉丝点击