2023华为OD统一考试(A+B卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新)
题目描述
输入一个长度为4的倍数的字符串Q,字符串中仅包含WASD四个字母。将这个字符串中的连续子串用同等长度的仅包含WASD的字符串替换,如果替换后整个字符串中WASD四个字母出现的频数相同,
那么我们称替换后的字符串是“完美走位”。求子串的最小长度。如果输入字符串已经平衡则输出0。
输入: 一行字符表示给定的字符串S
数据范围: 1<=n<=105且n是4的倍数,字符串中仅包含WASD四个字母。
输出: 整数表示答案
示例1
输入: WASDAASD输出: 1
说明: 将第二个A替换为W,即可得到完美走位。
示例2
输入: AAAA输出: 3
说明: 将其中三个连续的A替换为WSD,即可得到完美走位
示例3
输入ASDW
输出
0
示例4
输入AASW文章来源:https://www.toymoban.com/news/detail-644861.html输出1
文章来源地址https://www.toymoban.com/news/detail-644861.html
public class PerfactAlignment {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] wasd = sc.nextLine().toCharArray();
int endStep = step(wasd);
System.out.println(endStep);
}
public static int step(char[] wasd){
//平均值
int avg = wasd.length / 4;
//统计修改修改的方向值
int numA = 0;
int numS = 0;
int numW = 0;
int numD = 0;
for (int i = 0; i < wasd.length;i++){
switch (wasd[i]){
case 'A':
numA++;
break;
case 'S':
numS++;
break;
case 'W':
numW++;
break;
case 'D':
numD++;
break;
}
}
//绝对值(求出最大值 - 平均值)
int step = Math.abs(Math.max(Math.max(Math.max(numA, numS), numW), numD) - avg);
return step;
}
}
到了这里,关于华为OD真题--完美走位--带答案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!