华为机试 - 完美走位
创始人
2024-02-28 00:05:52
0

目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

输入一个长度为4的倍数的字符串,字符串中仅包含WASD四个字母。

将这个字符串中的连续子串用同等长度的仅包含WASD的字符串替换,如果替换后整个字符串中WASD四个字母出现的频数相同,那么我们称替换后的字符串是“完美走位”。

求子串的最小长度。

如果输入字符串已经平衡则输出0。

输入描述

一行字符表示给定的字符串s

数据范围:1<=n<=10^5且n是4的倍数,字符串中仅包含WASD四个字母。

输出描述

一个整数表示答案

用例

输入WASDAASD
输出1
说明将第二个A替换为W,即可得到完美走位
输入AAAA
输出3
说明将其中三个连续的A替换为WSD,即可得到完美走位

题目解析

题目要求,保持W,A,S,D字母个数平衡,即相等,如果不相等,可以从字符串中选取一段连续子串替换,来让字符串平衡。

比如:WWWWAAAASSSS

字符串长度12,W,A,S,D平衡的话,则每个字母个数应该是3个,而现在W,A,S各有4个,也就是说各超了1个。

因此我们应该从字符串中,选取一段包含1个W,1个A,1个S的子串,来替换为S。

WWWWAAAASSSS

WWWWAAAASSSS

WWWWAAAASSSS

........

WWWWAAAASSSS

而符合这种要求的子串可能很多,我们需要找出其中最短的,即WAAAAS。

本题其实就是求最小覆盖子串,同LeetCode - 76 最小覆盖子串_伏城之外的博客-CSDN博客

题目解析请看上面链接博客。

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});rl.on("line", (line) => {console.log(getResult(line));
});function getResult(str) {// 此时count记录统计W,A,S,D字母的数量const count = {W: 0,A: 0,S: 0,D: 0,};for (let c of str) count[c]++;// 平衡状态时,W,A,S,D应该都是avg数量const avg = str.length / 4;let total = 0; // total用于记录多余字母个数let flag = true; // flag表示当前是否为平衡状态,默认是for (let c in count) {if (count[c] > avg) {flag = false; // 如果有一个字母数量超标,则平衡打破count[c] -= avg; // 此时count记录每个字母超过avg的数量total += count[c];} else {delete count[c];}}if (flag) return 0; // 如果平衡,则输出0let i = 0;let j = 0;let minLen = str.length + 1;while (j < str.length) {const jc = str[j];if (count[jc]-- > 0) {total--;}while (total === 0) {minLen = Math.min(minLen, j - i + 1);const ic = str[i];if (count[ic]++ >= 0) {total++;}i++;}j++;}return minLen;
}

相关内容

热门资讯

原创 戴... 最近,关于前国脚戴琳的欠薪丑闻无疑是引发了球迷的持续关注,从10月25日,媒体人李平康率先爆料,晒出...
思想政治工作条例最新修订内容,... 思想政治工作条例最新修订内容,思想政治工作条例全文下载 思想政治工作条例最新修订,全文下载与深度解读...
CBA潜力赛为何打成“老将赛”... 计时钟归零,双方教练握手致意,观众开始退场,CBA联赛的正赛宣告结束。然而球场并未就此沉寂,替补席上...
“手术钻头断裂遗留患者体内”,... 12月21日,湖南祁阳市卫生健康局发布情况通报称,近日,有媒体报道祁阳市中医医院发生骨科手术钻头断裂...
代驾纠纷 代驾时撞伤行人、车辆发生故障…… 这些都和车主无关,应由代驾赔偿? 观点: 使用代驾服务并非将所有...
公司股东与妻子分居期间出轨女下... 近日据报道,宁夏永宁县人民法院一审查明公司股东李某乙在与妻子李某甲分居期间,与公司女员工马某某存在不...
动物学家、律师和创作者,Thi... 12月21日,以“一起·了不起”为主题的2025 ThinkPad黑FUN礼在京举办。活动现场,律师...
徐奇渊:扩内需与对外政策紧密相... 近日,中国海关总署发布了一组数据令人关注:2025年前11个月,我国货物贸易顺差达到1.08万亿美元...
46岁上海独居女子不幸离世,官... 居住在上海虹口区46岁的蒋女士因突发脑溢血于今年10月入院,远亲吴先生与其公司共同垫付了医药费,但她...