平衡字符串
【问题描述】
有⼀个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符,且⻓度为 n 的字符串。假如在该字符串中,这四个字符都恰好 出现 n/4 次,那么它就是⼀个「平衡字符串」。给你⼀个这样的字符串 s,请通过「替换⼀个⼦串」的 ⽅式,使原字符串 s 变成⼀个「平衡字符串」。
【输入形式】
一个长度为4整数倍的字符串
【输出形式】
待替换⼦串的最⼩可能⻓度
【样例输入】
WQWRQQQW
【样例输出】
3
【样例说明】
替换QQW就可以达到平衡
s=list(input())
n=len(s)
m=n//4
dic=dict()
dic.setdefault('Q',0)
dic.setdefault('E',0)
dic.setdefault('W',0)
dic.setdefault('R',0)
for i in s:
dic[i]+=1
if dic['Q']==m and dic['W']==m and dic['E']==m and dic['R']==m:
print(0)
w=n#初始化滑动窗口大小,把需要替换的困在一个窗口内,不需要替换的在窗口外。
l=0
for r in range(n):
dic[s[r]]-=1
while l<=r and dic['Q']<=m and dic['W']<=m and dic['E']<=m and dic['R']<=m:
w=min(w,r-l+1)
dic[s[l]]+=1
l+=1
print(w)