문제
LeetCode 792. Number of Matching Subsequences
https://leetcode.com/problems/number-of-matching-subsequences/
언어
자바스크립트(JavaScript)
접근 방법
- word의 한 글자씩 loop를 실행한다.
- s에 word의 글자가 존재하면 그 전의 글자는 모두 없앤다.
- s에서 일부 없어진 글자 중에서 word의 글자가 존재하지 않으면 Subsequences가 아님으로 판단한다.
코드
/**
* @param {string} s
* @param {string[]} words
* @return {number}
*/
var numMatchingSubseq = function(s, words) {
let result = 0;
words.forEach(word=>{
let isSub = true;
let str = s;
for (let i=0; i<word.length; i++){
let idx = str.indexOf(word[i]);
if(idx === -1){
isSub = false;
break;
}else{
str = str.slice(idx+1);
}
}
if(isSub){
result ++;
}
});
return result;
};
결과
Runtime: 120 ms, faster than 99.54% of JavaScript online submissions for Number of Matching Subsequences.
Memory Usage: 47.1 MB, less than 67.59% of JavaScript online submissions for Number of Matching Subsequences.
복기
- slice를 떠올리면 어렵지 않다.
'개발 공부 > 알고리즘 문제 풀이' 카테고리의 다른 글
[LeetCode] 6. ZigZag Conversion (0) | 2021.06.23 |
---|---|
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2021.06.22 |
[LeetCode] 2. Add Two Numbers (0) | 2021.06.22 |
[프로그래머스] 이진 변환 반복하기 (0) | 2021.04.12 |
[프로그래머스] 퀴드압축 후 개수 세기 (0) | 2021.04.12 |