Algorithm
LeetCode 387. First Unique Character in a String
KANG_G1
2023. 3. 2. 23:13
문자열이 지정되면 문자열에서 반복되지 않는 첫 번째 문자를 찾아
인덱스를 반환합니다. 존재하지 않으면 -1을 반환합니다.
반복문을 순회하며 중복이 아닌 경우를 찾아야 했다.
Map이나 Set을 사용해 문제에 접근하는 방법도 떠올렸으나
훨씬 간단하고 쉬운 코드를 작성할 방법이 떠올랐다.
바로 lastIndexOf 메서드를 사용하는 방법이다.
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
for(let i =0; i < s.length; i++) {
const coincideString = s.indexOf(s[i]) === s.lastIndexOf(s[i]);
if(coincideString) {
return i;
}
}
return -1;
};
indexOf로 앞에서부터 뒤로 가며 순회하고
lastIndexOf로 뒤에서 앞으로 순회하며 값을 체크했다.
두 값이 같다는 건 중복 없이 같은 idx에 위치한다는 것을 의미하므로
해당 idx를 리턴하면 해결이 가능했다.
사실 너무 꼼수 기질이 강해 위에서 말한 Map과 Set을 사용해서도 한 번 풀이를 해봐야겠다.
Reference
lastIndexOf에 대해 알고싶다면: https://www.codingfactory.net/10402