剑指 Offer II 015. 字符串中的所有变位词

126 阅读1分钟

剑指 Offer II 015. 字符串中的所有变位词

var findAnagrams = function (s2, s1) {
    var m = s1.length;
    var n = s2.length;
    if(m > n) return []
    var arr = new Array(26).fill(0)
    var brr = new Array(26).fill(0)
    var res = []
    for (var i = 0; i < m; i++) {
        arr[s1[i].charCodeAt(0) - 'a'.charCodeAt(0)]++
        brr[s2[i].charCodeAt(0) - 'a'.charCodeAt(0)]++
    }
    if (arr.toString() == brr.toString()) res.push(0)
    for (var j = m; j < n; j++) {
        brr[s2[j].charCodeAt(0) - 'a'.charCodeAt(0)]++
        brr[s2[j - m].charCodeAt(0) - 'a'.charCodeAt(0)]--
        if (arr.toString() == brr.toString()) res.push(j - m + 1)
    }
    return res
};