赞
踩
题目:原题链接(中等)
标签:贪心算法
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( 1 ) O(1) O(1) | 32ms (98.79%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution:
def minSwaps(self, s: str) -> int:
c0, c1 = s.count("0"), s.count("1")
if c0 + 1 < c1:
return -1
elif c0 + 1 == c1:
ans = 0
for i in range(0, len(s), 2):
if s[i] != "1":
ans += 1
return ans
elif c0 == c1:
ans1 = 0
for i in range(0, len(s), 2):
if s[i] == "0":
ans1 += 1
ans2 = len(s) // 2 - ans1
return min(ans1, ans2)
elif c0 == c1 + 1:
ans = 0
for i in range(0, len(s), 2):
if s[i] != "0":
ans += 1
return ans
else: # c0 > c1 + 1
return -1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。