已解决
Day22力扣打卡
来自网友在路上 179879提问 提问时间:2023-11-07 14:59:59阅读次数: 79
最佳答案 问答题库798位专家为你答疑解惑
打卡记录
替换子串得到平衡字符串(滑动窗口)
链接
由于是以后统计替换的子串,不可以直接使用hash表统计的每个次数大于 n / 4 的字符,再将其次数减去平衡数来得到答案,根据字符串的连贯性,使用 滑动窗口 来进行求解。
class Solution {
public:int balancedString(string s) {int n = s.length(), m = n / 4, cnt['X']{};for (char c : s) ++cnt[c];if (cnt['Q'] == m && cnt['W'] == m && cnt['E'] == m && cnt['R'] == m) return 0;int ans = n, left = 0;for (int right = 0; right < n; right++) {--cnt[s[right]];while (cnt['Q'] <= m && cnt['W'] <= m && cnt['E'] <= m && cnt['R'] <= m) {ans = min(ans, right - left + 1);++cnt[s[left++]];}}return ans;}
};
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"Day22力扣打卡":http://eshow365.cn/6-34549-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 汇编-变量
- 下一篇: 如何平衡三维模型的顶层合并构建的文件大小与质量关系