すべての画像を検索
9190 ワード
const solution = (s, t) => {
let count = 0;
const hashOfT = t
.split('')
.reduce(
(hash, char) =>
hash.hasOwnProperty(char)
? (hash[char]++, hash)
: ((hash[char] = 1), hash),
{},
);
const limit = s.length;
const targetLength = t.length;
let leftPointer = 0;
const hashOfS = {};
const compare = target => {
for (const key in hashOfT) {
if (target.hasOwnProperty(key)) {
if ((target[key]--, target[key]) < 0) return false;
} else return false;
}
return true;
};
for (let rightPointer = 0; rightPointer < limit; rightPointer++) {
const char = s[rightPointer];
hashOfS.hasOwnProperty(char) ? hashOfS[char]++ : (hashOfS[char] = 1);
if (rightPointer >= targetLength) {
const prevChar = s[leftPointer++];
(hashOfS[prevChar]--, hashOfS[prevChar]) == 0 && delete hashOfS[prevChar];
}
if (rightPointer >= targetLength - 1 && compare({ ...hashOfS })) count++;
}
return count;
};
const result = solution('bacaAacba', 'abc');
console.log(result);
Reference
この問題について(すべての画像を検索), 我々は、より多くの情報をここで見つけました https://velog.io/@woobuntu/모든-아나그램-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol