class Solution {
public:
string removeDuplicates(string s) {
stack<char> st;
for (char a : s) {
if (st.empty() || a != st.top()) {
st.push(a);
} else {
st.pop();
}
}
string res = "";
while (!st.empty()) {
res += st.top();
st.pop();
}
reverse(res.begin(), res.end());
return res;
}
};
类似题
class Solution {
public:
int evalRPN(vector<string>& s) {
stack<int> st;
for (int i = 0; i < s.size(); i++) {
if (s[i] == "+") {
int num1 = st.top();
st.pop();
int num2 = st.top();
st.pop();
st.push(num1 + num2);
} else if (s[i] == "-") {
int num1 = st.top();
st.pop();
int num2 = st.top();
st.pop();
st.push(num2 - num1);
} else if (s[i] == "*") {
int num1 = st.top();
st.pop();
int num2 = st.top();
st.pop();
st.push(num1 * num2);
} else if (s[i] == "/") {
int num1 = st.top();
st.pop();
int num2 = st.top();
st.pop();
st.push(num2 / num1);
} else {
st.push(stoi(s[i]));
}
}
int res = st.top();
st.pop();
return res;
}
};