“退格键”(Backspace)你想退到哪里?比较含退格的字符串

描述:比较含退格的字符串

退格

用“#”表示退格键,示例:ab#c == ac 。注意:如果对空文本书写退格,文本认为空,即:######## == ‘ ’
几种类型
#ab
#a#b
ab##
#a##b
#a#b#c

一、栈

 var backspaceCompare = function(S, T) {
        let s1=[],t1=[]; 
        S.split('').map(item=>{ item!=="#"?s1.push(item):s1.pop()})
        T.split('').map(item=>{ item!=="#"?t1.push(item):t1.pop()})
        return s1.join('')===t1.join('')
    };

二、个人写法

 function getArr(str) {
        let arr = str.split('');
        let len =  arr.length; //注意这个地方for循环的时候arr的长度是不断变化的
        // console.log(arr);
        for (let i = 0; i < len; i++) {
            // console.log(a[0]);
            if (arr[0] == "#") {
                // console.log("删除#开头");
                arr.splice(0, 1);i=0;
            }else{
                if(arr[i] == "#"){
                    arr.splice(i - 1, 2);i=0;
                }
            }
            
            // console.log(a,"________________"+i);
            
        }
        return arr
    }
    // let res1 = getArr(str1);
    // let res2 = getArr(str2);
    let res3 = getArr(str1);
    let res = getArr(str4);
       console.log(res);
       console.log(res3);
    // getArr(str2);

    function compare(arr1, arr2) {
        let temp = true;
        if (arr1.length != arr2.length) {
            temp = false;
        } else {
            for (var i = 0; i < arr1.length; i++) {
                if (arr1[i] != arr2[i]) {
                    temp = false;
                }
            }
        }
        return temp
    }
    // let res = compare([1,2,3,4],[1,2,3,4])
    // console.log(res);


    // var backspaceCompare = function (S, T) {
    //     return compare(getArr(S),getArr(T))
    // };
posted @ 2020-10-19 13:53  百炼终成王  阅读(531)  评论(0编辑  收藏  举报