难度:简单

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

    示例:

    1. s = "leetcode"
    2. 返回 0.
    3. s = "loveleetcode",
    4. 返回 2.

    解题思路:
    暴力解法

    1. var firstUniqChar = function(s) {
    2. for(let i of s){
    3. if(s.indexOf(i) === s.lastIndexOf(i)){
    4. return s.indexOf(i)
    5. }
    6. }
    7. return -1
    8. };

    哈希表

    1. var firstUniqChar = function(s) {
    2. let map = new Map()
    3. for(let i in s){
    4. if(map.has(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 key of map.keys()) {
    11. if(map.get(key) === 1){
    12. return s.indexOf(key)
    13. }
    14. }
    15. return -1
    16. };