leetcode-159周赛-5232-替换子串得到平衡字符串*

题目描述:

 

 

 

 方法:

另:

 

 

class Solution:
    def balancedString(self, s: str) -> int:
        n, req = len(s), len(s) // 4
        c_all = collections.Counter(s)
        c_cur = collections.Counter()
        l = -1
        ans = n
        for r in range(n):
            c_cur[s[r]] += 1
            while l < r:
                c_cur[s[l + 1]] -= 1
                flag = all(c_all[ch] - c_cur[ch] <= req for ch in "QWER")
                if flag:
                    l += 1
                else:
                    c_cur[s[l + 1]] += 1
                    break
            if all(c_all[ch] - c_cur[ch] <= req for ch in "QWER"):
                ans = min(ans, r - l)
        return ans

 

posted @ 2019-10-21 09:56  oldby  阅读(306)  评论(0编辑  收藏  举报