리트코드 387번

나의 풀이

var firstUniqChar = function(s) {
    let map = new Map();
    for (let i = 0; i < s.length; i++) {
        if (map.has(s[i])) {
            let a = map.get(s[i]);
            a.push(i);
            map.set(s[i], a);
        } else {
            map.set(s[i], [i]);
        }
    }
    for (let x of map.keys()) {
        if (map.get(x).length === 1) {
            return map.get(x)[0];
        }
    }
    return -1;

};

map을 사용해서 s의 원소가 반복되는지 안되는지 판단하고, 반복되지 않는 원소 중 가장 앞에 있는 것의 index를 리턴한다. 존재하지 않을 경우 -1 리턴

다른 사람의 풀이

맵을 사용하지 않고 object를 사용해서 푼 사람도 있다. 풀이 자체는 거의 비슷하다.

좋은 웹페이지 즐겨찾기