“退格键”(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))
// };