【LeetCode刷题】844. 比较含退格的字符串

1:题目描述(力扣)

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

【LeetCode刷题】844. 比较含退格的字符串_第1张图片

2:解题思路

遍历字符串,将不是“#”的元素存入新数组,当碰到“#”元素时,删除数组的最后一个元素。

第一步:再写一个函数,来获取字符串被输入到空白的文本编辑器后得到的字符串

第二步:定义一个空数组

第三步:遍历数组,

1:判断当前的遍历的值是否等于“#”,不等于“#”,则将当前遍历的元素加入到数组中,

2:不满足1,当前遍历的值等于“#”,判断数组的长度是否大于0,大于0,则删除数组的最后一个元素(满足题意:#代表退格字符,会将#前面的元素移除)

第四步:以字符串的形式返回数组

第五步:在原来的函数中,调用新定义的函数,得到s和t被输入文本编辑器后的值,判断是否相等

代码展示:

class Solution:
    def backspaceCompare(self, s, t):
        def get_string(s):
            res = []       # 定义一个空数组
            for i in range(len(s)):      # 遍历字符串中的元素
                c = s[i]       # 将当前遍历到的值,赋值给变量c
                if c != '#':       # 判断c是否等于“#”
                    res.append(c)        # c不等于“#”,则将c的值添加到列表中,进入下一次循环
                elif len(res) > 0:    # c等于“#”,判断数组的长度是否大于0,即数组中有没有元素
                    res.pop()    # 数组的长度大于零,删除最后一个元素,进入下一次循环
            return str(res)     

        if get_string(s) == get_string(t):
            return True
        else:
            return False

你可能感兴趣的:(Leetcode,leetcode,算法,python)