題目:原題鏈接(簡單)
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | 48ms (56.27%) | ||
Ans 2 (Python) | 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