做网站jw100,青岛做网站和小程序的公司,免费可商用的cms,十大SEO网站外链建设误区目录 1. 题目#xff1a;2. 我的代码#xff1a;小结#xff1a; 1. 题目#xff1a; 给出由小写字母组成的字符串 S#xff0c;重复项删除操作会选择两个相邻且相同的字母#xff0c;并删除它们。
在 S 上反复执行重复项删除操作#xff0c;直到无法继续删除。
在完成… 目录 1. 题目2. 我的代码小结 1. 题目 给出由小写字母组成的字符串 S重复项删除操作会选择两个相邻且相同的字母并删除它们。
在 S 上反复执行重复项删除操作直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
示例 输入“abbaca” 输出“ca” 解释 例如在 “abbaca” 中我们可以删除 “bb” 由于两字母相邻且相同这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”其中又只有 “aa” 可以执行重复项删除操作所以最后的字符串为 “ca”。 2. 我的代码
class Solution:def removeDuplicates(self, s: str) - str:# 栈stack [~]for i in s:if i ! stack[-1]:stack.append(i)else:stack.pop()return .join(stack)[1:]这里利用栈来实现相邻重复项的删除就像《祖玛》一样。这和“有效括号”那道题很像都是需要用栈处理。这里为了防止索引过界设置开头栈元素为~然后将输入字符串的所有元素过栈如果与栈顶元素匹配则pop栈顶。
最后利用string.join()函数以“为分隔符将栈数组变为字符串并舍去开头的”~将结果输出。
小结 关注我给大家分享更多有趣的知识以下是个人公众号提供 ||代码兼职|| ||代码问题求解|| 添加我的公众号即可