「比较含退格的字符串」python之leetcode刷题|008

题目

给定 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 只含有小写字母以及字符 '#'。

解答

这道题数退栈和出栈的操作,逻辑有点强。这里先要把两个字符串换成没有#的,然后在进行比较即可

class Solution(object):
    def backspaceCompare(self, S, T):
        """
        :type S: str
        :type T: str
        :rtype: bool
        """
        s = ''
        t = ''
        for i in S:
            if i == '#':
                if s:
                    s = s[:-1]
            else:
                s += i
        for j in T:
            if j == '#':
                if t:
                    t = t[:-1]

            else:
                t += j
                
        return s==t

这里一定要加判断是否字符串s,t为空,因为如果没有这个判断,假如输入的字符串第一个元素为#,x下面执行的代码就要报错。

看一下执行结果


image.png

再看一下排名靠前的代码

class Solution(object):
    def backspaceCompare(self, S, T):
        """
        :type S: str
        :type T: str
        :rtype: bool
        """
        
        s1 = []
        s2 = []
        
        for i in S :
            
            if i == '#' :
                
            
                if s1 : s1.pop()
                
            else :
                s1.append( i )
    
        for i in T :
            if i == '#'  :
                if s2 : s2.pop()
            else :
                
                s2.append( i )
                
        
        return ''.join(s1 ) == ''.join( s2  )

这个逻辑更好理解。不说了,继续练习去。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 8,334评论 0 7
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,675评论 0 13
  • 今天是大年初二是访亲会友的好曰子 不记得哪一位说过 你有多久没有小跑着去见一个人了 在这访亲的曰子 除了母亲让自己...
    陈糊涂阅读 838评论 2 1
  • 今早爬山,身后的脚步声由远及近,随即便听见有人打招呼:“老师!你早”!这声音虽不熟悉,但我还是不由自主的扭...
    伯韬54阅读 3,342评论 0 1
  • 微君之故 误会了我们?晏绾瞪大了双眸,一脸不可置信。 “之前我拒绝了姨母为我物色的一门亲事,想必她的气儿还没消。今...
    q青鸦y阅读 3,671评论 6 4