leetcode-day4-查找常用字符[1002题]

2020-10-14  本文已影响0人  孙静静
image.png

先取出第一个元素,让第二个元素和第一个元素比较得出公共的字符, 并将这个字符加入数组中,利用递归反复比较前后两个值,直到数组中只剩下一个元素,该元素则为最终结果

/**
 * @param {string[]} A
 * @return {string[]}
 */
var commonChars = function(A) {
    if(A === null) return null;
    // 思路: 先取出第一个元素,让第二个元素和第一个元素比较得出公共的字符, 并将这个字符加入数组中,
    // 利用递归反复比较前后两个值,直到数组中只剩下一个元素,该元素则为最终结果
    let res = [], iarray = A;
    (function handleR(){
        if(iarray.length === 1) return false;
        let coms = ''
        let str1 = iarray.shift();
        let str2 = iarray.shift();
        for(let i=0;i<str1.length;i++){
            if (str2.indexOf(str1.substr(i,1)) > -1){
                coms += str2[str2.indexOf(str1.substr(i,1))];
                str2 = str2.replace(str2[str2.indexOf(str1.substr(i,1))], '');
               // 这句话的意思是,将str1和str2比较后将str2中已存在的元素设为空,避免再次比较
            }
        }
        res = [coms];
        iarray.push(coms);
        handleR();
    })()
    for(let i=0;i<res[0].length;i++){
        res.push(res[0][i]);
    }
    res.shift();
    return res;
};
上一篇 下一篇

猜你喜欢

热点阅读