🎲 문제
387. First Unique Character in a String
Easy
문자열 s가 주어지면 그 안에 있는 첫 번째 비반복 문자를 찾아 인덱스를 반환합니다. 존재하지 않으면 -1을 반환합니다.
더보기
Given a string s
, find the first non-repeating character in it and return its index. If it does not exist, return -1
.
Example 1:
Input: s = "leetcode"
Output: 0
Example 2:
Input: s = "loveleetcode"
Output: 2
Example 3:
Input: s = "aabb"
Output: -1
Constraints:
1 <= s.length <= 105
s
consists of only lowercase English letters.
💡 접근 방법
- 스프레드한 문자열을 reduce 함수로 카운팅된 오브젝트를 생성
- 오브젝트의 value가 1인 key를 찾고 unique에 할당
- unique에 할당된 값이 undifined 이면 -1 반환하고 아닐경우 문자열 s에 indexOf 로 unique의 첫번째 인덱스를 반환
👀 my code
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function (s) {
const obj = [...s].reduce((acc, curr) => {
if (acc[curr]) {
acc[curr]++
} else {
acc[curr] = 1;
}
return acc
}, {})
const unique = Object.keys(obj).find(key => obj[key] === 1);
return unique === undefined ? -1 : s.indexOf(unique);
};
👀 for loof로 해결한 솔루션
var firstUniqChar = function(s) {
let obj = {};
for (let i of s){
obj[i] ? obj[i] += 1 : obj[i] = 1
}
for (let i = 0; i < s.length; i++) {
if (obj[s[i]] === 1) return i;
}
return -1
};
'DS & Algo > 풀이모음' 카테고리의 다른 글
[leetcode/JS] 290_Word Pattern 풀이 (0) | 2022.12.01 |
---|---|
[leetcode/JS] 808_Soup Servings 풀이 (0) | 2022.11.28 |
[leetcode/JS] 292_Nim Game 풀이 (0) | 2022.11.28 |
[leetcode/JS] 232_Implement Queue using Stacks 풀이 (0) | 2022.11.20 |
[leetcode/JS] 283_Move Zeroes 풀이 (0) | 2022.11.20 |
댓글