python 字符串删除重复_【每日一题】78. 删除字符串中的所有相邻重复项

该博客讨论了一种字符串处理问题,即删除所有相邻且相同的字符,直到无法继续删除。给出了一个O(n)时间复杂度和空间复杂度的解决方案,并提供了具体的代码实现。文章适合计算机考研者学习,涉及字符串操作和算法设计。
摘要由CSDN通过智能技术生成
40b8438f3750c6b3eb8793f5eba81b78.gif关注我们获取更多计算机考研信息

6047d027ff88f8daef0787ff6a350c55.png

? 今日习题

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

在 S 上反复执行重复项删除操作,直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

示例:

输入:"abbaca"

输出:"ca"

解释:

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

1<= S.length <= 20000

S 仅由小写英文字母组成。

b22f8ff0abea9cb81cd8ebf0fbc845a2.png

……⏰ 思考时间……

如果你想好答案了

请查看解题思路和代码实现

·解题思路·

首先创建一个空的字符串 res,然后对形参进行依次循环。

如果 res 中的最后一个字符与参数中循环到的字符相等,则去掉该字符,否则添加字符。

时间复杂度:O(n)

空间复杂度:O(n)

·代码实现·

class Solution {public:string removeDuplicates(string S) {string res = "";for(char c: S)if(res.size() && res.back() == c)                res.pop_back();else                res += c;return res;    }};

微信关注“字节408考研”,

免费获取各院校计算机软件考研信息与专业课资料!

15fc3839bbd13d3fe9fbf4fb409033ee.png

在看不好意思,那就点个赞或者广告吧

f437eef5686061d60d7ce1ff587fb684.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值