网站维护 html,网站怎么找,网站定制微安电力案例,壁纸公司网站源码2023华为OD统一考试#xff08;AB卷#xff09;题库清单-带答案#xff08;持续更新#xff09;or2023年华为OD真题机考题库大全-带答案#xff08;持续更新#xff09; 题目描述: 一群大雁往南飞#xff0c;给定一个字符串记录地面上的游客听到的大雁叫声#xff0c;请…2023华为OD统一考试AB卷题库清单-带答案持续更新or2023年华为OD真题机考题库大全-带答案持续更新 题目描述: 一群大雁往南飞给定一个字符串记录地面上的游客听到的大雁叫声请给出叫声最少由几只大雁发出。具体的 1.大雅发出的完整叫声为”quack“因为有多只大雁同一时间嘎嘎作响所以字符串中可能会混合多个”quack” 2.大雁会依次完整发出”quack”即字符串中qu,ack这5个字母按顺序完整存 在才能计数为一只大雁如果不完整或者没有按顺序则不予计数。 3.如果字符串不是由quac,k字符组合而成或者没有找到一只大雁请返回-1. 输入描述: 一个字符串包含大雁quack的叫声。1字符串长度1000字符串中的字符只有 qu,a,ck 输出描述 大雁的数量 用例: 输入-输出 quackquack-- 1 qaauucqckk-- -1 quacqkuac -- 1 qququaauqccauqkkcauqqkcauqqkcaaukccakkkck -- 5 quackqquackuackqqqqquack -- 2 /**思路最小几只大雁在叫1. 从头取开始遍历的完整的quack2. 遍历字符串统计所有的这个quack中有几个qt放在list中3. 在统计全部的字符串中判断能满足这t个q对应数量的quack最小值4. 取list中值跟小于t的最小值比较6. 返回t or n*/
public class CountGeese {public static void main(String[] args) {Scanner sc new Scanner(System.in);String sound sc.nextLine();Character[] soundType {q,u,a,c,k};ListCharacter record new ArrayList(Arrays.asList(soundType));int value count(sound,record);System.out.println(value);}//qququaauqccauqkkcauqqkcauqqkcaaukccakkkck quackqquackuackqqqqquackpublic static int count(String sound, ListCharacter record){ListInteger qList new ArrayList();int countq 0;int index 0;int len record.size();//统计满足条件的q值数量for (int i 0; i sound.length(); i){if (sound.charAt(i) q){countq;}if (sound.charAt(i) record.get(index)){if (index len -1){qList.add(countq);countq 0;index 0;continue;}index;}}if (qList.size() 0){return -1;}//统计下所有q u a c k的值int q 0;int u 0;int a 0;int c 0;int k 0;for (int i 0; i sound.length(); i) {switch (sound.charAt(i)){case q:q;break;case u:u;break;case a:a;break;case c:c;break;case k:k;break;}}//取 q u a c k最小值int min Math.min(Math.min(Math.min(q, u), Math.min(a, c)), k);Collections.sort(qList,(m,n) - n-m);for (int i 0; i qList.size(); i){if (qList.get(i) min){return (qList.get(i));}}return min;}}