题目描述:给一个字符串S,把重复的删掉,直到没办法删
举个栗子:
输入:“abbaca”
输出:“ca”
解释:把bb删掉以后,就有了aa,把aa又删掉,还剩ca
然后我考虑了另外一种情况,不知道bbb会不会删掉
结果是这样的:
输入:“abbbaca”
输出:“abaca”
解法:本菜鸡不知道string里还自带那么多功能,可以从这里查到string参考页;本题用到的有back; pop_back; push_back
;
意思在这:
stk.back(访问最后的字符)
stk.pop_back(移除末尾字符)
stk.push_back(后附字符到结尾)
代码在这:
class Solution {
public:
string removeDuplicates(string S) {
string stk;
//stk.back(访问最后的字符)
//stk.pop_back(移除末尾字符)
//stk.push_back(后附字符到结尾)
for(auto ch : S)
{
if(!stk.empty() && stk.back() == ch) {
stk.pop_back();
}
else {
stk.push_back(ch);
}
}
return stk;
}
};