【算法系列】leetcode1419 数青蛙 --模拟

devtools/2025/2/22 5:43:42/

一、题目

二、思路

模拟⻘蛙的叫声。
当遇到 'r' 'o' 'a' 'k' 这四个字符的时候,我们要去看看每⼀个字符对应的前驱字符,有没有⻘蛙叫出来。如果有⻘蛙叫出来,那就让这个⻘蛙接下来喊出来这个字符;如果没有则为异常字符串,直接返回 -1 
当遇到'c'这个字符的时候,我们去看看'k'这个字符有没有⻘蛙叫出来。如果有,就让
这个⻘蛙继续去喊'c'这个字符;如果没有的话,就⻘蛙数加1。

三、代码

我的版本

#include <unordered_map>
class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {string str="croak";unordered_map<char,int> index;int len=str.size();vector<int> cnt(5,0);for(int i=0;i<len;++i)index[str[i]]=i;for(auto e:croakOfFrogs){   if(e=='c'){if(cnt[len-1]!=0) cnt[len-1]--;  cnt[0]++;}else{if(cnt[index[e]-1]==0)return -1;cnt[index[e]-1]--;cnt[index[e]]++;}}for(int i=0;i<len-1;++i){if(cnt[i]!=0)return -1;}return cnt[len-1];}
};

deepseek深度学习版本:

#include <unordered_map>
class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {// 定义字符到阶段的映射unordered_map<char, int> charToIdx = {{'c', 0}, {'r', 1}, {'o', 2}, {'a', 3}, {'k', 4}};vector<int> counts(5, 0); // 分别代表c, r, o, a, k阶段的青蛙数目int maxFrogs = 0;for (char ch : croakOfFrogs) {// 检查字符是否有效if (charToIdx.find(ch) == charToIdx.end()) {return -1;}int idx = charToIdx[ch];if (idx == 0) {// 处理字符c,优先复用k阶段的青蛙if (counts[4] > 0) {counts[4]--;counts[0]++;} else {counts[0]++;}} else {// 处理其他字符,需要前一个阶段有青蛙int prev = idx - 1;if (counts[prev] == 0) {return -1;}counts[prev]--;counts[idx]++;}// 计算当前活跃的青蛙数目int currentSum = counts[0] + counts[1] + counts[2] + counts[3] + counts[4];maxFrogs = max(maxFrogs, currentSum);}// 检查所有非k阶段的数目是否为0for (int i = 0; i < 4; i++) {if (counts[i] != 0) {return -1;}}return maxFrogs;}
};

http://www.ppmy.cn/devtools/160873.html

相关文章

尝试在exo集群下使用deepseek模型:第一步,调通llama

exo是一个多机协同AI大模型集群软件&#xff0c;它可以将多种设备统一成一个强大的GPU&#xff0c;支持多种模型&#xff0c;并具有动态模型分区、自动设备发现等功能‌。 问题 实践&#xff1a;多机协同AI大模型集群软件exo&#xff1a;体验github日榜第一名的魅力&#xff…

Matlab代编电气仿真电力电子电机控制自动化新能源微电网储能能量

将MATLAB中的电气仿真、电力电子、电机控制、自动化、新能源、微电网以及储能和能量管理系统的代码迁移到Python&#xff08;或直接在Python中编写这些系统的仿真代码&#xff09;是一个复杂但可行的任务。Python拥有许多库和工具&#xff0c;可以支持这些领域的仿真和建模。 …

黑马点评自学04

实战篇 针对黑马点评项目的一些功能编写。 探店功能 本功能主要实现用户对店铺的评价功能&#xff0c;也可以称为探店笔记 主要涉及到两个表&#xff1a; tb_blo&#xff1a;探店笔记表&#xff0c;包含笔记中的标题、文字、图片等tb_blog_comments&#xff1a;其他用户对…

《鸿蒙开发-答案之书》获取视频第一帧和视频时间

《鸿蒙开发-答案之书》获取视频第一帧和视频时间 /*** 获取视频信息**let result await MySightUtil.getSightInfo(this.sightUri);*let base64 : string result[0];*let duration : number result[1]** param uri 视频地址* returns 第一个数据是缩略图 base64 字符串&…

python电影数据分析及可视化系统建设

博主介绍&#xff1a;✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

详细介绍Tess4J的使用:从PDF到图像的OCR技术实现

在当今的数字化时代&#xff0c;OCR&#xff08;光学字符识别&#xff09;技术被广泛应用于文档扫描、图片文字识别以及其他自动化数据提取任务。Tesseract作为一款强大的开源OCR引擎&#xff0c;在处理图像和PDF中的文本提取方面具有非常高的准确度和效率。本文将详细介绍如何…

JVM基础---java类加载机制(类的生命周期,类加载器,双亲委派模型)

文章目录 类的生命周期类的加载&#xff1a;查找并加载类的二进制数据验证准备解析初始化 类加载器启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;扩展类加载器&#xff08;Extension ClassLoader&#xff09;应用程序类加载器&#xff08;Application ClassLoade…

DeepSeek助力:打造属于你的GPTs智能AI助手

文章目录 一、环境准备1.安装必要的工具和库2. 选择合适的开发语言 二、核心技术选型1. 选择适合的AI框架 三、功能实现1. 文本生成与对话交互2. 代码生成与自动补全3. 数据分析与报告生成 四、案例实战1. 搭建一个简单的聊天机器人2. 创建一个代码生成器 五、总结与展望1. 当前…