华为机考 数大雁怎么确定最大 大雁数目呀。

 题目描述

一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。

具体的:

1.大雁发出的完整叫声为”quack“,因为有多只大雁同一时间嘎嘎作响,所以字符串中可能会混合多个”quack”。

2.大雁会依次完整发出”quack”,即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。

3.如果字符串不是由’q’, ‘u’, ‘a’, ‘c’, ‘k’ 字符组合而成,或者没有找到一只大雁,请返回-1

输入描述

一个字符串,包含大雁quack的叫声。1 <= 字符串长度 <= 1000,字符串中的字符只有’q’, ‘u’, ‘a’, ‘c’, ‘k’。

我的核心代码:
public  static void  main(String [] argsthrows Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        char[] quack = str.toCharArray();
        int sum = 0;
        //叫声合法字符数目
        int q = 0, u = 0, a = 0, c = 0;
        outfor:
        for (char ch : quack) {
            switch (ch) {
                case 'q':
                    q++;
                    break;
                case 'u':
               //只有u<q时,这个u才是合法字符
                if(u<q) u++;
                    break;
                case 'a':
                    if(a<u)a++;
                    break;
                case 'c':
                   if(c<a) c++;
                    break;
                case 'k':
                    if (c > 0) {
                        //问题就是这里了,因为如果不完整或者没有按顺序则不予计数,所以会有很多不符合条件的输入,我感觉我这样写这q肯定是超大雁数的。但是我感觉我也不知道怎么进行判断
                        sum = Math.max(sum, q);
                        q--;u--;a--; c--;
                    }
                    break;
                default:
                    sum=-1;
                    break outfor;
            }
        }
        System.out.println(sum);
    }

#华为OD机考#
全部评论
力扣1419数青蛙一个题目
2 回复 分享
发布于 2023-04-03 16:19 江苏
不知道题目有没有理解错,按我的理解在没有测试用例的情况下,自测了一下,应该差不多
1 回复 分享
发布于 2022-12-10 14:58 上海
python有正则提取表达式可以一键提取所有的quack单词…..
点赞 回复 分享
发布于 2022-09-26 09:16 广东
用一个长度为5的滑动窗口,从左到右依次滑动,直到窗口右边界到达字符串终点。中途一旦检测到窗口值为quack,记录大雁数+1。下一次窗口左指针跳到原窗口末端开始
点赞 回复 分享
发布于 2022-09-26 09:15 广东
就比如说quacquackquack这个字符串,最小是一只大雁在叫quac quackquack,前面的quac可以当做不计数。
点赞 回复 分享
发布于 2022-09-25 03:50 四川

相关推荐

_mos_:要不是看评论区我都不知道你要找的是数分
点赞 评论 收藏
分享
孙艹肘:校招不给三方直接让实习我都去了,,主打一个在学校呆着也是闲着,不如出来实习一下
点赞 评论 收藏
分享
昨天 22:14
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务