题目来源: https://leetcode.cn/problems/minimum-string-length-after-removing-substrings/
C++题解:使用了栈,遇到B弹出A,遇到D弹出C,弹出之前需判断栈是否为空。
class Solution {
public:
int minLength(string s) {
stack<int> stk;
int len = s.size();
stk.push(s[0]);
for(int ii = 1; ii < len; ii++) {
if(!stk.empty() && s[ii] == 'B'){
if(stk.top() == 'A') stk.pop();
else stk.push(s[ii]);
}
else if(!stk.empty() && s[ii] == 'D'){
if(stk.top() == 'C') stk.pop();
else stk.push(s[ii]);
}
else stk.push(s[ii]);
}
int res = stk.size();
return res;
}
};