一、题目描述:
二、思路分析:
这几天都在刷栈,这个典型的栈思维。
- 遇到自己的同类大小写出栈
- 其他,进栈
三、AC 代码:
var makeGood = function(s) {
const arr = s.split("");
const res = [];
for (let i = 0; i < arr.length; i++) {
const cur = arr[i];
if (res.length === 0) {
res.push(cur);
continue;
}
const stackTop = res[res.length - 1];
const isUpper =
cur === String.fromCharCode(stackTop.charCodeAt() - 32);
const isLower =
cur === String.fromCharCode(stackTop.charCodeAt() + 32);
if (isUpper || isLower) {
res.pop();
continue;
}
res.push(arr[i]);
}
return res.join("");
};
四、总结:
- 遇到将最后一个扔出去的情景,想想栈