function handleHash(str, i) {
while (str[i-1] === "#") {
i--;
}
i -= 2;
if(str[i] === "#") {
handleHash(str,i);
} else {
return i;
}
}
var sameString = function(str1,str2) {
let firstStrArray = [];
let secondStrLen = str2.length;
if (typeof str1 !== 'string' || typeof str2 !== 'string') {
return false;
}
for (let char of str1) {
if (char === '#') {
if (firstStrArray) {
firstStrArray.pop();
}
} else {
firstStrArray.push(char);
}
}
let firstStrLen = firstStrArray.length;
console.log("firstStrLen: " + firstStrLen + " secondStrLen " + secondStrLen);
for (let i = str2.length-1; i>=0; i--) {
let char = str2[i];
let offset = 0;
console.log("i: " + i);
if (firstStrLen > secondStrLen) {
offset = firstStrLen + i;
} else {
console.log("char: " + char);
offset = i - (secondStrLen - firstStrLen) > 0 ? i - (secondStrLen - firstStrLen) : 0;
}
if (char === "#") {
i = handleHash(str2,i);
console.log(" second i: " + i);
char = str2[i];
}
let strlength = firstStrArray.length-offset;
console.log("strlength: " + strlength);
console.log("offset: " + offset + " char: " + char + " str1[offset] " + firstStrArray[offset]);
if (typeof char !== 'undefined' && typeof firstStrArray[offset] !== 'undefined') {
if (char !== firstStrArray[offset]) {
return false;
}
}
}
return true;
}
//console.log(sameString('cb#had','chad'));
//console.log(sameString('chs#ad','cb#had'));
//console.log(sameString('chs#ad','cb#hs#ap#d'));
console.log(sameString('chs#ad','ce#b#hs#ap#d'));
//console.log(sameString("c#d#","ab##"));
//console.log(sameString('chad','cb#had'));
//console.log(sameString('cb#had','chs#ad')); //f
//console.log(sameString('cb#hs#ap#d','chs#ad')); //f
//console.log(sameString('ce#b#hs#ap#d','chs#ad')); //f
//console.log(sameString("ab##","c#d#"));