Remove All * & previous char In String :
/**
* @param {string} s
* @return {string}
*/
var removeStars = function (s) {
return getString(s);
};
const getString = (str) => {
let stack = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === "*") {
stack.pop();
} else {
stack.push(str[i]);
}
}
return stack.join("");
};
// Input: s = "leet**cod*e"
// Output: "lecoe"
Remove All Adjacent Duplicates In String :
/**
* @param {string} s
* @return {string}
*/
var removeDuplicates = function (s) {
return getString(s);
};
const getString = (str) => {
let stack = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === stack[stack.length-1]) {
stack.pop();
} else {
stack.push(str[i]);
}
}
return stack.join("");
};
// Input: s = "abbaca"
// Output: "ca"
Remove All # & backspace on hash In String :
/**
* @param {string} s
* @param {string} t
* @return {boolean}
*/
var backspaceCompare = function (s, t) {
return getString(s) === getString(t);
};
const getString = (str) => {
let stack = [];
for (let i = 0; i < str.length; i++) {
if (str[i] === "#") {
stack.pop();
} else {
stack.push(str[i]);
}
}
return stack.join("");
};
console.log(backspaceCompare("ab#c", "ad#c"));
Input: s = "ab#c", t = "ad#c"
Output: true
Explanation: Both s and t become "ac".
Top comments (0)