LeetCode(力扣)1047. 删除字符串中的所有相邻重复项Python

LeetCode1047. 删除字符串中的所有相邻重复项

    • 题目链接
    • 代码

题目链接

https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-string/description/
LeetCode(力扣)1047. 删除字符串中的所有相邻重复项Python_第1张图片

代码

class Solution:
    def removeDuplicates(self, s: str) -> str:
        res = []
        for i in s:
            if len(res) < 1:
                res.append(i)
            else:
                num = res.pop()
                if num == i:
                    continue
                else:
                    res.append(num)
                    res.append(i)
        return ''.join(res)

双指针

class Solution:
    def removeDuplicates(self, s: str) -> str:
        res = list(s)
        slow = fast = 0
        length = len(res)

        while fast < length:
            # 如果一样直接换,不一样会把后面的填在slow的位置
            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])

你可能感兴趣的:(leetcode,python,算法,职场和发展)