Leetcode—— 844.比较含退格的字符串

844.比较含退格的字符串

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

示例 1:

输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。
示例 2:

输入:S = "ab##", T = "c#d#"
输出:true
解释:S 和 T 都会变成 “”。
示例 3:

输入:S = "a##c", T = "#a#c"
输出:true
解释:S 和 T 都会变成 “c”。
示例 4:

输入:S = "a#c", T = "b"
输出:false
解释:S 会变成 “c”,但 T 仍然是 “b”。
 

提示:

1 <= S.length <= 200
1 <= T.length <= 200
S 和 T 只含有小写字母以及字符 '#'。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/backspace-string-compare
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

遍历字符串,如果字符是#并且栈不空,将栈顶字符元素出栈,不是#的话,将字符元素入栈。

程序代码:

class Solution:
    def backspaceCompare(self, S, T):
        stack_S = []
        stack_T = []
        for s in S:
            if s == '#' and  stack_S:
                stack_S.pop()
            else:
                if s != '#':
                    stack_S.append(s)
        for t in T:
            if t == '#' and  stack_T:
                stack_T.pop()
            else:
                if t != '#':
                    stack_T.append(t)
        return stack_T == stack_S



S = "y#fo##f"
T = "y#f#o##f"
s = Solution()
print(s.backspaceCompare(S, T))
发布了246 篇原创文章 · 获赞 155 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/suxiaorui/article/details/103639679