当前位置:首页 > 编程笔记 > 正文
已解决

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 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!