LeetCode題解(1422):分割字符串的最大得分(Python)

題目:原題鏈接(簡單)

解法 時間複雜度 空間複雜度 執行用時
Ans 1 (Python) O(N2)O(N^2) O(1)O(1) 48ms (56.27%)
Ans 2 (Python) O(N)O(N) O(1)O(1) 40ms (87.75%)
Ans 3 (Python)

LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。

解法一(暴力解法):

def maxScore(self, s: str) -> int:
    ans = 0
    for i in range(1, len(s)):
        ans = max(ans, s[0:i].count("0") + s[i:].count("1"))
    return ans

解法二(兩次遍歷):

def maxScore(self, s: str) -> int:
    a = 0
    for c in s:
        if c == "1":
            a += 1

    ans = 0

    b = 0
    for c in s[:-1]:
        if c == "0":
            b += 1
            ans = max(ans, a + b)
        else:
            a -= 1
            ans = max(ans, a + b)

    return ans
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章