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

 题目描述

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

具体的:

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 四川

相关推荐

稽鱼:简历好丑啊,换个模板,别用红色字体
点赞 评论 收藏
分享
我是秋招面的抖音电商部门,从八月开始给我打电话约面试,当时有加对应的hr微信,前几轮还好,从三面开始就是拖半个月一下在推进,面了三轮以后拖了一个月说再加一个交叉面,面完过了半个多月问hr,hr说她离职了不管我了,我连自己的流程在哪里都不清楚。在官网投诉了三次(前两次正常反馈问题,字节你像听不懂话一样),今天下午突然有其他部门约我面试,说在人才库里看见我简历了觉得很匹配,我拒了说不想面了。过了一会,声称原来那个部门的hr负责人给我回电话,表示抱歉,说因为北京hc不够了把我流程释放了,前面的hr是实习生离职了,没有和我对接非常抱歉,如果有想法可以帮我推荐给其他部门。那么我问你:1.&nbsp;从八月等到11月,三个月时间我前面不断确认还有没有hc,给我的回复都是有hc,没hc你面什么呢?2.&nbsp;作为一个大厂你流程这么一坨?让实习生对接校招流程,实习生离职了对应的候选人就不管了?不是我主动问我的流程就这样一直被卡?3.&nbsp;还说我面评没问题,帮我推荐其他部门,现在各个大厂都开奖了,你还让我从头开始面?我前面面了你们三个月啊,孩子饿死了开始装得想负责了。4.&nbsp;你们官网的流程反馈对应的人员是理解能力有问题吗,一个问题我投诉三次才能看明白是吗?套话一堆在哪里随便选了个常用语就给我回复了?不想开可以直接把入口关了
奋斗的小码农a:字节流程就是恶心死人,一次字节广告5面挂一次字节抖音电商6面挂,最后那个面试官装都不装了直接分屏聊天还外放语音家里真的私募了
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

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