我的js算法爬坑之旅-比较含退格的字符串

93 阅读1分钟

第十二天:力扣第844题,比较含退格的字符串

地址:leetcode-cn.com/problems/ba…

思路:刚开始就想用栈,但是太懒了,懒得想,就用傻瓜方法写吧:

var backspaceCompare = function(S, T) {
    let A=S.split("");
    let B=T.split("");
    for(let i = 0;i<A.length;i++)
    {
        if(A[0]==="#")
        {
            A.splice(0,1);
            i--;
        }
        else if (A[i]==="#")
        {
            A.splice(i-1,2);
            i=i-2;
        }
    }
    for(let i = 0;i<B.length;i++)
    {
        if(B[0]==="#")
        {
            B.splice(0,1);
            i--;
        }
        else if (B[i]==="#")
        {
            B.splice(i-1,2);
            i=i-2;
        }
    }
    A=A.join("");
    B=B.join("");
    return (A==B);
};

这是最低级的方法,当然,用栈很方便:

var backspaceCompare = function(S, T) {
    const arrS = [], arrT = [];
    for(let char of S){
        char === '#' ? arrS.pop() : arrS.push(char);
    }
    for(let char of T){
        char === '#' ? arrT.pop() : arrT.push(char);
    }
    return arrS.join('') === arrT.join('');
};  

还有双指针和第一个方法差不多,只不过是从后往前遍历的,就不放代码了。