LeetCode 1419. 数青蛙(脑洞题)

1. 题目

给你一个字符串 croakOfFrogs,它表示不同青蛙发出的蛙鸣声(字符串 “croak” )的组合。
由于同一时间可以有多只青蛙呱呱作响,所以 croakOfFrogs 中会混合多个 “croak” 。
请你返回模拟字符串中所有蛙鸣所需不同青蛙的最少数目

注意:要想发出蛙鸣 “croak”,青蛙必须 依序 输出 ‘c’, ’r’, ’o’, ’a’, ’k’ 这 5 个字母。
如果没有输出全部五个字母,那么它就不会发出声音。

如果字符串 croakOfFrogs 不是由若干有效的 “croak” 字符混合而成,请返回 -1 。

示例 1:
输入:croakOfFrogs = "croakcroak"
输出:1 
解释:一只青蛙 “呱呱” 两次示例 2:
输入:croakOfFrogs = "crcoakroak"
输出:2 
解释:最少需要两只青蛙,“呱呱” 声用黑体标注
第一只青蛙 "crcoakroak"
第二只青蛙 "crcoakroak"示例 3:
输入:croakOfFrogs = "croakcrook"
输出:-1
解释:给出的字符串不是 "croak" 的有效组合。示例 4:
输入:croakOfFrogs = "croakcroa"
输出:-1提示:
1 <= croakOfFrogs.length <= 10^5
字符串中的字符只有 'c', 'r', 'o', 'a' 或者 'k'

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-number-of-frogs-croaking
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • c, r, o, a, k任意时刻字符数量,按这个次序非升
  • 最后时候数量必须相等
  • 5个字符在任意时刻的最大值为需要的青蛙数量
  • 5个字符满了一只青蛙,则减去它,后面可以重复使用这只青蛙。
class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {int i, frog=0, c, r, o, a, k;c=r=o=a=k=i=0;for(i = 0; i < croakOfFrogs.size(); ++i){if(croakOfFrogs[i]=='c') c++;else if(croakOfFrogs[i]=='r') r++;else if(croakOfFrogs[i]=='o') o++;else if(croakOfFrogs[i]=='a') a++;else k++;if(!(c>=r&&r>=o&&o>=a&&a>=k)) return -1;//次序不对if(i == croakOfFrogs.size()-1 && !(a==r&&r==o&&o==a&&a==k))return -1;//最后不相等frog = max(frog,max(c,max(r,max(o,max(a,k)))));if(c&&r&&o&&a&&k)//满了一只c--,r--,o--,a--,k--;//减去它}return frog;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL性能优化(转)

MySQL 服务器调优 最近帮人维护一个DZ论坛&#xff0c;总结如下几个调优技巧&#xff0c;让 MySQL 服务器飞速运行有 3 种方法可以加快 MySQL 服务器的运行速度&#xff0c;效率从低到高依次为&#xff1a;1.替换有问题的硬件。2.对 MySQL 进程的设置进行调优。3.对查询进行优化…

python报IndentationError: unexpected indent的解决方法.

问题描述&#xff1a; python语言对缩进非常敏感&#xff0c;一般都是四个空格 一个tab&#xff0c;但是很多时候我们会忽视这个问题。导致两者混用或者少写空格容易出现这样的问题。问题解决&#xff1a;找到指定代码行&#xff0c;重新书写&#xff01;下面的with open则是明…

termux配置python安装kali_安卓安装kali linux之Termux

解决安装kali无模组问题步骤1.获取root环境需要下载proot直接在命令行里输入pkg install proot&#xff0c;下完以后输入命令termux-chroot获取root环境2.获取git &#xff0c;因为需要在github上下载atilo&#xff0c;atilo的作用是atilo是github上的一个开源工具&#xff0c;…

LeetCode 466. 统计重复个数(循环节)

1. 题目 由 n 个连接的字符串 s 组成字符串 S&#xff0c;记作 S [s,n]。例如&#xff0c;["abc",3]“abcabcabc”。 如果我们可以从 s2 中删除某些字符使其变为 s1&#xff0c;则称字符串 s1 可以从字符串 s2 获得。例如&#xff0c;根据定义&#xff0c;“abc”…

aspnet_regsql

aspnet_regsql 使SQL支持会话状态 aspnet_regsql -S localhost -U sa -P password -ssadd -sstype p 其中&#xff1a;-sstype有三个值&#xff1a;t,p,c(详细说明可使用 aspnet_regsql -? 命令查看) 使数据库支持SQL Server高速缓存禁用功能 aspnet_regsql -S localhost -U …

AcWing之找出数组中重复的数字

题目 给定一个长度为 n 的整数数组 nums&#xff0c;数组中所有的数字都在 0∼n−1 的范围内。 数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 注意&#xff1a;如果某些数字不在 0…

python绘制数字23_Python 画数码数字8

import turtlesize 10line 40# 拿出笔pen turtle.Pen()pen.pensize(size)pen.pencolor("blue")turtle.tracer(False) # 不跟踪动画pen.penup()pen.forward(size)pen.pendown()pen.forward(line)pen.penup()pen.forward(size)pen.pendown()pen.left(90)pen.penup()…

LeetCode 303. 区域和检索 - 数组不可变(前缀和)

1. 题目 给定一个整数数组 nums&#xff0c;求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和&#xff0c;包含 i, j 两点。 示例&#xff1a; 给定 nums [-2, 0, 3, -5, 2, -1]&#xff0c;求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRang…

timer控件的使用

拖拉过去后,双击timer,进入timer2_Tick事件,写入代码后, 改timer属性 interval为1 enabled为true 转载于:https://www.cnblogs.com/zzh1236/archive/2008/12/17/1356435.html

AcWing之找出不改变数组找到重复的数字

题目 给定一个长度为 n1 的数组nums&#xff0c;数组中所有的数均在 1∼n 的范围内&#xff0c;其中 n≥1。请找出数组中任意一个重复的数&#xff0c;但不能修改输入的数组。样例 给定 nums [2, 3, 5, 4, 3, 2, 6, 7]。 返回 2 或 3。思考题&#xff1a; 如果只能使用 O(1) …

DELPHI之备忘(二)

1. DLL的资源释放问题 EXITPROC//*******************//释放资源//*******************var dllExit: Pointer;procedure MyExit;begin//资源释放 ExitProc : dllExit;end;//******************************//创建资源//******************************begin // 资源创建 Exi…

LeetCode 307. 区域和检索 - 数组可修改(树状数组)

1. 题目 给定一个整数数组 nums&#xff0c;求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和&#xff0c;包含 i, j 两点。 update(i, val) 函数可以通过将下标为 i 的数值更新为 val&#xff0c;从而对数列进行修改。 示例: Given nums [1, 3, 5] sumRange(0, 2) -> …

python地理_【Python教程】地理可视化

Matplotlib是Python常用的数据绘制包&#xff0c;其绘图功能强大&#xff1b;而Basemap则是Matplotlib的一个子包&#xff0c;负责地图绘制。本文简单介绍如何利用该程序包绘制风向图。具体操作如下&#xff1a;导入命令1)设置工作环境并导入程序包%cd "F:\\Dropbox\\pyth…

部署windows服务

写好了windows服务以后&#xff0c;再切换到设计页面&#xff0c;右键点击添加安装程序&#xff0c;点击后自动给你添加上一个安装组件&#xff0c;再设置下serviceProcessInstaller1组件的属性&#xff08;在设计器中设置&#xff0c;不在代码中&#xff09;&#xff0c;其中有…

LeetCode 327. 区间和的个数(multiset二分查找/归并排序)

文章目录1. 题目2. 解题2.1 动态规划超时2.2 二分查找2.3 归并排序1. 题目 给定一个整数数组 nums&#xff0c;返回区间和在 [lower, upper] 之间的个数&#xff0c;包含 lower 和 upper。 区间和 S(i, j) 表示在 nums 中&#xff0c;位置从 i 到 j 的元素之和&#xff0c;包…

AcWing之二维数组的查找

题目 在一个二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。 请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。样例 输入数组&#xff1a; [ [1,2,8,9]&…

sql server排序慢_SQL 查询调优之 where 条件排序字段以及 limit 使用索引的奥秘

(给数据分析与开发加星标&#xff0c;提升数据技能)作者&#xff1a;风过无痕-唐www.cnblogs.com/tangyanbo/p/6378741.html奇怪的慢sql我们先来看2条sql第一条&#xff1a;select * from acct_trans_log WHERE acct_id 1000000000009000757 order by create_time desc limit…

fedora10完全配置文档连接网址

code.google.com/p/fedora-zh/downloads/list 转载于:https://www.cnblogs.com/glc400/archive/2008/12/20/4473856.html

LeetCode 326. 3的幂

1. 题目 给定一个整数&#xff0c;写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true示例 2: 输入: 0 输出: false示例 3: 输入: 9 输出: true示例 4: 输入: 45 输出: false进阶&#xff1a; 你能不使用循环或者递归来完成本题吗&#xff1f;来源&#xff…

ps抠头发插件_彻底告别抠图的烦恼!PS自动抠图超级插件Topaz ReMask大放送

我们经常需要对各种图片进行抠图&#xff0c;虽然抠图方法很多&#xff0c;但是我们却要花费很长的时间&#xff0c;这无疑来说效率非常不高。有没有一款PS插件可以快速对照片进行抠图&#xff1f;并且可以达到自己理想的效果&#xff1f;当然是有的&#xff0c;今天米朵就送给…