Python编程题35--删除字符串中的所有相邻重复项

2021-12-06  本文已影响0人  wintests

题目

给定仅由小写字母组成的非空字符串,存在一个重复项删除操作,其会选择两个相邻且相同的字母,并删除它们。

请在字符串上反复执行重复项删除操作,直到无法继续删除,并在完成所有重复项删除操作后返回最终的新字符串。

例如:

给定一个字符串:aaabbaaaca,返回结果:ca

给定一个字符串:a,返回结果:a

实现思路1

代码实现1

def removeDuplicates(s):
    res = list(s)
    slow, fast = 0, 0
    while fast < len(s):
        res[slow] = res[fast]
        if slow > 0 and res[slow] == res[slow - 1]:
            slow -= 1
        else:
            slow += 1
        fast += 1
    return "".join(res[0:slow])

实现思路2

代码实现2

def removeDuplicates(s):
    res = []
    for i in s:
        if res and res[-1] == i:
            res.pop()
        else:
            res.append(i)
    return "".join(res)

更多Python编程题,等你来挑战:Python编程题汇总(持续更新中……)

上一篇 下一篇

猜你喜欢

热点阅读