首页 > 其他分享 >华为OD 数大雁

华为OD 数大雁

时间:2024-09-07 17:53:22浏览次数:13  
标签:quack used str int OD 华为 大雁 字符串

题目描述

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

具体的:

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’。

输出描述

大雁的数量

用例1

输入

quackquack

输出

1

Copy

用例2

输入

qaauucqckk

Copy

输出

-1

Copy

用例3

输入

quacqkuac

Copy

输出

1

用例4

输入

qququaauqccauqkkcauqqkcauuqkcaaukccakkck

输出

5
import java.util.Scanner;

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.next();
        int[] used = new int[str.length()];
        Arrays.fill(used, 0);
        int count = 0;
        int j = 0;
        while(find(str, used)){
            //找到一只,count+1
            count ++;
        }
        if(count == 0){
            System.out.println(-1);
        }else{
            System.out.println(count);
        }
        
        
    }

    //遍历整个字符串,找到连续quack,就表示找到一只,used置为1,这一只可能叫了多次,所以需要遍历到字符串尾部。
    public static Boolean find(String str, int[] used){
        Boolean canFind = false;
        int j = 0;
        List<Integer> list = new ArrayList<Integer>();
        for(int i = 0; i < str.length(); i++){
            if(used[i] != 1 && str.charAt(i) == "quack".charAt(j)){
                j++;
                list.add(i);
                if(j == 5){
                    for(Integer num: list){
                        used[num] = 1;
                    }
                    j = 0;
                    list.clear();
                    canFind = true;
                }
            }
        }
        return canFind;
    }
}

 

标签:quack,used,str,int,OD,华为,大雁,字符串
From: https://blog.csdn.net/zhaowei513/article/details/141999698

相关文章

  • 828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群
    828华为云征文|华为云FlexusX实例docker部署rancher并构建k8s集群华为云最近正在举办828B2B企业节,FlexusX实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧!什么是华为云Fl......
  • 【Leetcode:LCR 101. 分割等和子集 + 递归 + 记忆化搜索 + dp】
    ......
  • LeetCode刷题-哈希表
    一:哈希表1、有key:value键值对这样的概念;就是字典;通过key得到value2、hash碰撞问题:就是key的内存地址相同;使用链表的方法解决3、字典常见操作#创建哈希表hash_tabel={}#添加元素hash_tabel['name']='admin'hash_tabel['age']=25#删除元素delhash_tabel['name']#修改元......
  • 安装nvm管理nodejs包,保姆级教程!
    安装nvm管理nodejs包,保姆级教程!一.本期所需网址nvm:github下载nvm:手册文档下载nvm命令查看:查看命令二.下载nvm1.github下载点击链接下载:https://github.com/coreybutler/nvm-windows/releases选择.exe文件下载安装开始安装双击打开安装程序同意协议下一步......
  • npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题
    背景当您在使用npm时遇到npmERR!codeCERT_HAS_EXPIRED错误时,这通常是因为您的本地计算机上的根证书已过期。这个错误可能是由于您的操作系统或Node.js环境中的证书问题导致的。本文将介绍如何解决这个常见的问题,以确保您可以顺利使用npm进行包管理。原文链接:https://blog.c......
  • 线性dp:LeetCode516 .最长回文子序列
    LeetCode516.最长回文子序列题目叙述:力扣题目链接(opensnewwindow)给你一个字符串s,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例1:输入:s="bbbab"输出:4解释:一个可能的......
  • 使用Blip的预训练好的imageEncoder并替换其textDecoder
    fromtransformersimportBlipProcessor,BlipTextConfigfromtransformers.models.blip.modeling_blip_textimportBlipTextLMHeadModelfromtransformersimportAutoTokenizermodel=BlipForConditionalGeneration.from_pretrained("huggingface.co/Salesforc......
  • 828华为云征文|华为云Flexus X实例部署安装Jupyter Notebook,学习AI,机器学习算法
    前言由于本人最近在学习一些机器算法,AI算法的知识,需要搭建一个学习环境,所以就在最近购买的华为云FlexusX实例上安装了学习环境,JupyterNotebook。没想到效果格外的,由于华为云FlexusX实例做了很多底层的性能优化,依托创新的大模型支持和智能全域调度,X-Turbo加速技术让常见......
  • 1143. 最长公共子序列(leetcode)
    https://leetcode.cn/problems/longest-common-subsequence/description/经典题,老题回顾classSolution{publicintlongestCommonSubsequence(Stringtext1,Stringtext2){//f[i][j]表示所有在第一个序列前i个数中选择,在第二个序列前j个数中选择得到的最长......
  • LeetCodeTest算法测试 传递一个数组和一个特定的目标整型数字,返回的两个数组元素相加
    1importjava.util.ArrayList;2importjava.util.List;34publicclassLeetCodeTest{5publicstaticvoidmain(String[]args){67int[]intArr=newint[]{2,7,11,15};8List<CustomerIntIndex>customerIntIndexL......