刷题——数大雁

article/2024/4/20 0:18:30

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

  1. 大雁发出的完整叫声为"quack",因为有多只大雁同一时间嘎嘎作响,所以字符串中可能
    会混合多个 “quack”。
  2. 大雁会依次完整发出 “quack”,即字符串中‘q’, ’u’, ’a’, ’c’, ’k’ 这 5个
    字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。
  3. 如果字符串不是由‘q’, ’u’, ’a’, ’c’, ’k’字符组合而成,或者没有找到一
    只大雁,请返回 -1。
    输入描述:
    一个字符串,包含大雁quack的叫声。1 <= 字符串长度 <= 10000
    字符串中的字符只有’q’, ‘u’, ‘a’, ‘c’, ‘k’
    输出描述:
    大雁的数量
    在这里插入图片描述
#include <iostream>
#include <string>
#include <algorithm>bool is_str(std::string str)
{int times = 0, times1 = 0, times2 = 0, times3 = 0, times4 = 0, times5 = 0;for (int i = 0; i < str.size(); i++){if (str.at(i) == 'q' || str.at(i) == 'u' || str.at(i) == 'a' || str.at(i) == 'c' || str.at(i) == 'k'){times++;}if (str.at(i) == 'q'){times1++;}else if (str.at(i) == 'u'){times2++;}else if (str.at(i) == 'a'){times3++;}else if (str.at(i) == 'c'){times4++;}else if (str.at(i) == 'k'){times5++;}}if(times != str.size() || times1==0 || times2 == 0 || times3 == 0 || times4 == 0 || times5 == 0 || str.size() < 5){return false;}else{return true;}
}int number(std::string str)
{int times = 0;for (int i = 0; i < str.size() - 5; i++){if (str.at(i) == 'q' && str.at(i+1) == 'u' && str.at(i+2) == 'a' && str.at(i+3) == 'c' && str.at(i+4) == 'k'){times++;}}std::cout << "N2:" << times+1 << std::endl;return times;
}int count(std::string str)
{int times1=0,times2 =0,times3=0,times4=0,times5=0;for(int i=0;i<str.size();i++){if (str.at(i) == 'q'){times1++;}else if (str.at(i) == 'u'){times2++;}else if (str.at(i) == 'a'){times3++;}else if (str.at(i) == 'c'){times4++;}else if (str.at(i) == 'k'){times5++;}}std::cout << "N1:" << std::max(std::max(std::max(std::max(times1, times2), times3), times4), times5) << std::endl;return std::max(std::max(std::max(std::max(times1, times2), times3), times4),times5);
}int dayan_num(std::string str)
{bool flag = is_str(str);if (flag == true){std::cout << "给出的字符串是有效组合" << std::endl;return count(str) - number(str);}else{std::cout << "给出的字符串不是有效组合" << std::endl;return -1;}
}int main()
{std::string str1 = "quackquack";std::string str2 = "quqackuack";std::string str3 = "quackquuok";int N = dayan_num(str1);std::cout << "N:" << N << std::endl;return 0;
}

http://www.ngui.cc/article/show-1927658.html

相关文章

lc 每日一题 2024 - 03 - 01 划分型dp

链接 : . - 力扣&#xff08;LeetCode&#xff09; 思路 : 子集划分型dp , 设置dp[i1]表示前i个数字能否有效划分&#xff1b; 那么一个划分好的数组 两个相等的数字 &#xff0c; 新形成的数组也是有效划分数组; 同理&#xff0c;加上三个相等 或 三个递增的数字 &…

使用Docker -compose启动自定义jar包

步骤1&#xff1a;编写docker-compose.yml文件 首先我们需要编写一个docker-compose.yml文件来定义我们的服务传到我们的云服务器上 以下是一个示例&#xff1a; version: 3 services:app:build:context: .dockerfile: Dockerfileports:- 8080:8080volumes:- ./app.jar:/app…

【Mars3d】进行水平测量measure.area({的时候,会被模型遮挡的处理方法

问题&#xff1a; 1.thing/analysis/measure 水平面积 measure.area({ 在模型上测量的时候会被遮挡 2. 通过 addHeight:10000,增加高度也不可以实现这种被遮挡的效果&#xff0c;都增加到10000了&#xff0c;还是会被遮挡 export function measureArea() { measure.area({ s…

将所有字母转化为该字母后的第三个字母,即A->D,B->E

//编写加密程序&#xff0c;规则&#xff1a;将所有字母转化为该字母后的第三个字母&#xff0c;即A->D,B->E,C->F,…Y->B,Z->C //小写字母同上&#xff0c;其他字符不做转化。输入&#xff1a;I love 007 输出&#xff1a;L oryh 007 代码&#xff1a; #inc…

小程序原生 API

微信原生 API 1. API 基础 小程序开发框架提供丰富的微信原生 API&#xff0c;可以方便的调起微信提供的能力&#xff0c;如获取用户信息&#xff0c;本地存储&#xff0c;支付功能等&#xff0c;几乎所有小程序的 API 都挂载在 wx 对象底下&#xff0c;例如&#xff1a;wx.c…

钉钉机器人发送折线图卡片 工具类代码

钉钉机器人 “创建并投放卡片 接口 ” 可以 发送折线图、柱状图 官方文档&#xff1a;创建并投放卡片 - 钉钉开放平台 0依赖、1模板、2机器人放到内部应用、3放开这个权限 、4工具类、5调用工具类 拼接入参 卡片模板 自己看文档创建&#xff0c;卡片模板的id 有用 0、依赖…

Facebook的元宇宙实践:数字化社交的新前景

近年来&#xff0c;元宇宙&#xff08;Metaverse&#xff09;这一概念备受瞩目&#xff0c;被认为是数字化社交的未来趋势之一。而在众多科技巨头中&#xff0c;Facebook&#xff08;现更名为Meta&#xff09;一直处于元宇宙发展的前沿。在本文中&#xff0c;我们将深入探讨Fac…

flask 数据库迁移报错 Error: No such command ‘db‘.

初学FLASK&#xff0c;使用pycharm的terminal 启动&#xff0c;实现数据库迁移 文件结构 项目启动文件不在一级目录pycharm>terminal启动 由于自己初入 python flask 很多东西并不懂&#xff0c;只能依葫芦画瓢&#xff0c;使用如下命令,输入完第一行命令执行没有任何错误…

react Hook useEffect的基本使用及注解

一、概述 useEffect是React提供的一个Hook&#xff0c;用于在函数组件中执行副作用操作。副作用操作通常包括数据获取、订阅事件、手动操作DOM等。useEffect可以让我们在函数组件中模拟类组件的生命周期方法&#xff08;如componentDidMount、componentDidUpdate、componentWi…

vue自定义实现icon选择器

<template> <div> <span class"iconStyle" click"selectIcon"> <i :class"value" /> </span> <div class"iconTitle">选择图标</div> <el-dialog title"" :visible.sync"…