免費咨詢律師不收費的平臺長治seo顧問
2023華為OD統(tǒng)一考試(A+B卷)題庫清單-帶答案(持續(xù)更新)or2023年華為OD真題機考題庫大全-帶答案(持續(xù)更新)
題目描述
輸入一個長度為4的倍數(shù)的字符串Q,字符串中僅包含WASD四個字母。將這個字符串中的連續(xù)子串用同等長度的僅包含WASD的字符串替換,如果替換后整個字符串中WASD四個字母出現(xiàn)的頻數(shù)相同,
那么我們稱替換后的字符串是“完美走位”。求子串的最小長度。如果輸入字符串已經(jīng)平衡則輸出0。
輸入: 一行字符表示給定的字符串S
數(shù)據(jù)范圍: 1<=n<=105且n是4的倍數(shù),字符串中僅包含WASD四個字母。
輸出: 整數(shù)表示答案
示例1
輸入: WASDAASD輸出: 1
說明: 將第二個A替換為W,即可得到完美走位。
示例2
輸入: AAAA輸出: 3
說明: 將其中三個連續(xù)的A替換為WSD,即可得到完美走位
示例3
輸入ASDW
輸出
0
示例4
輸入AASW輸出1
?
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;//統(tǒng)計修改修改的方向值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;}
}