30天Leetcode挑战(1):844 Backspace String compare

碎碎念

主要是跟一个朋友打赌看能不能每天做一个leetcode,虽然我甚至不知道这个东西除了对要当软工的人有用以外还能干嘛XD

题干

题目会给两个字串,每遇到一个井字符号就相当于按下一次删除,阿如果遇到已经被删除的,不会往前删(这一段要看懂英文比较困扰,我一直在想如果存到已经删除的时候怎么办,后来才发现是这个意思)。

解题思路

我这边亲切的告诉chargpt我要这样的功能:

处里字串的,功能如下1.会输入两个字串2.确定第一个字串有多少"#"符号,如果有出现就删除前一个字符3.确定第二个字串有多少"#"符号,如果有出现就删除前一个字符

然后她回给我这些

def process_string(s):    """    处理单个字串,如果有'#',则删除前一个字符。    """    result = []    for char in s:        if char == "#":            if result:  # 确保result不为空                result.pop()  # 删除最后一个字符        else:            result.append(char)  # 如果不是'#',将字符添加到列表中    return "".join(result)  # 将列表转换回字串def main():    # 请用户输入两个字串    string1 = input("请输入第一个字串: ")    string2 = input("请输入第二个字串: ")    # 处理字串    processed_string1 = process_string(string1)    processed_string2 = process_string(string2)    # 输出结果    print("处理后的第一个字串: ", processed_string1)    print("处理后的第二个字串: ", processed_string2)if __name__ == "__main__":    main()

再经过一些删减整合之后变成以下

class Solution:    def backspaceCompare(self, s: str, t: str) -> bool:        def dosomestring(string):            result = []            for char in string:                if char == "#":                    if result:  # 确保result不为空                        result.pop()  # 删除最后一个字符                else:                    result.append(char)  # 如果不是'#',将字符添加到列表中            return "".join(result)  # 将列表转换回字串        a = dosomestring(s)        b = dosomestring(t)        if a == b:            return True        else:            return False

不得不说用AI写程式,真滴快。

其他议题

但好像有複杂度相关的东西,但我毕竟不是学软体的,看我同学有没有想法啰。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章