?
class Solution {
public:
string removeDuplicates(string s) {
stack<char> st;
for (char S : s) {
if (st.empty() || S != st.top()) {
st.push(S);
} else {
st.pop(); // s 与 st.top()相等的情况
}
}
string result = "";
while (!st.empty()) { // 将栈中元素放到result字符串汇总
result += st.top();
st.pop();
}
reverse (result.begin(), result.end()); // 此时字符串需要反转一下
return result;
}
};
超时代码:
class Solution {
public:
string removeDuplicates(string s) {
stack<char> st;
//翻过来输入
for (char S:s){
if (st.empty() || st.top() != S){
st.push(S);
}
else {
st.pop();
}
}
string str = "";
while (!st.empty()){
str = str + st.top();
st.pop();
}
reverse(str.begin(),str.end());
return str;
}
};
|