栈
解题思路
迭代字符串 s 并维护一个栈;
- 如果当前栈是空的或者栈顶元素与当前元素不同,则将当前字符放入栈中;
- 如果当前的字符和栈顶字符相同,则出栈栈顶元素;
迭代字符串完毕,返回栈内的元素即可;
复杂度
-
时间复杂度:
O(n)
,其中 n 是字符串的长度,只需要遍历该字符串一次; -
空间复杂度:
O(1)
;
代码实现
var removeDuplicates = function (s) {
let stack = [];
for (const x of s) {
let len = stack.length;
if (len && stack[len - 1] === x) {
stack.pop();
continue;
}
stack.push(x);
}
return stack.join("");
};
566.重塑矩阵
上一篇