给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

    示例:
    **
    s = “leetcode”
    返回 0
    s = “loveleetcode”
    返回 2

    提示:你可以假定该字符串只包含小写字母。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string

    思路:
    用一个map记录出现次数,输出第一个次数为1的字符
    复杂度分析:
    时间复杂度O(n)
    空间复杂度O(n)

    1. var firstUniqChar = function (s) {
    2. let map = new Map();
    3. for (let i = 0; i < s.length; i++) {
    4. if (map.get(s[i])) {
    5. map.set(s[i], map.get(s[i]) + 1);
    6. } else {
    7. map.set(s[i], 1);
    8. }
    9. }
    10. for (let i = 0; i < s.length; i++) {
    11. if (map.get(s[i]) === 1)
    12. return i;
    13. }
    14. return -1;
    15. };