当前位置:   article > 正文

LeetCode题解(1864):构成交替字符串需要的最小交换次数(Python)_leetcode 1864

leetcode 1864

题目:原题链接(中等)

标签:贪心算法

解法时间复杂度空间复杂度执行用时
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/588098
推荐阅读
相关标签
  

闽ICP备14008679号