작성
·
126
0
안녕하세요! 수업 잘듣고있습니다 :)
이번 문제를 혼자 풀어보았는데 괜찮은 코드인지 궁금하여 질문 남깁니다. 항상 감사합니다!^^
function compareMaps(tmp, sH) {
let sH1 = new Map();
for (let [key, val] of sH) {
sH1.set(key, val);
}
for (let x of tmp) {
if (!sH1.has(x) || sH1.get(x) === 0) return 0;
sH1.set(x, sH1.get(x) - 1);
}
return 1;
}
function solution(s, t) {
let answer = 0;
sH = new Map();
let len = t.length;
let tmp = s.slice(0, len);
for (let x of t) {
if (sH.has(x)) sH.set(x, sH.get(x) + 1);
else sH.set(x, 1);
}
if (compareMaps(tmp, sH)) answer++;
for (let i = len; i < s.length; i++) {
tmp = tmp.slice(1);
tmp = tmp + s[i];
if (compareMaps(tmp, sH)) answer++;
}
return answer;
}
let a = 'bacaAacba';
let b = 'abc';
console.log(solution(a, b));