题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个由 0 和 1 组成的一维数组,现在可以对数组中的任意 1 做右移到末尾或者下个 1 的左边,求可以这么操作的最大操作数。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution:
def maxOperations(self, s: str) -> int:
n = len(s)
left = 0
i = 0
ans = 0
while i < n:
if s[i] == '1':
left += 1
else:
ans += left
while i < n-1 and s[i+1] == '0':
i += 1
i += 1
return ans