思路:
多组相邻重复项,我们无论先删除哪一项,都不会影响最终结果。
删除当前项是需要拿上一项出来对比的,所以我们需要用临时栈存放之前的内容。
当前项和栈顶一致,弹出栈顶抵消即可。若不一致,压入栈留存,供后续使用。
/**
* @param {string} s
* @return {string}
*/
var removeDuplicates = function(s) {
if(!s){return ''};
let stack =[];
for(item of s){
if(stack.length&&stack[stack.length-1]==item){
stack.pop()
}else{stack.push(item)}
}
return stack.join('')
};