本文主要是介绍删除字符串中两个相邻字符(力扣1047),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题思路:匹配的题用栈来做,这里用一个栈遍历支付串,遇到相同的就弹出去,最后再把栈转换成字符
代码实现入下:
class Solution {
public:
string removeDuplicates(string S) {
stack<char>result;
for(char s:S)
{
if(result.empty()||s!=result.top()) result.push(s);
else result.pop();
}
string a;
while (!result.empty()) { // 将栈中元素放到result字符串汇总
a += result.top();
result.pop();
}
reverse (a.begin(), a.end()); // 此时字符串需要反转一下
return a;
}
};
题目如下:
给出由小写字母组成的字符串 S
,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一
这篇关于删除字符串中两个相邻字符(力扣1047)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!