iT邦幫忙

0

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

  • 分享至 

  • xImage
  •  

碎碎念

主要是跟一個朋友打賭看能不能每天做一個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寫程式,真滴快。

其他議題

但好像有複雜度相關的東西,但我畢竟不是學軟體的,看我同學有沒有想法囉。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言