当前位置: 首页 > news >正文

【LeetCode热题100】模拟

这篇博客记录了模拟相关的题目,也就是按照题目的描述写代码,很锻炼代码实现能力,包括了替换所有的问号、Z字形变换、外观数列、数青蛙4道题。

class Solution {
public:string modifyString(string s) {int n = s.size();for(int i = 0 ; i < n ; i++){if(s[i] == '?'){for(char ch = 'a' ; ch <= 'z' ; ch++){if((i == 0 || ch != s[i-1]) && (i == n-1 || ch != s[i+1])){s[i] = ch;break;}}}}return s;}
};

题目分析:这道题很简单,从前往后扫描字符串,直到遇到‘?’,然后从a-z字符中选取一个符合要求的字符,也就是这个字符既不能和前一个字符一样,又不能和后一个字符一样。需要特殊考虑的是,如果‘?’是第一个字符,就不需要考虑其前一个字符,同样的,如果如果‘?’是最后一个字符,就不需要考虑其后一个字符。

class Solution {
public:string convert(string s, int numRows) {if(numRows == 1) return s; string ret;int d = 2 * numRows - 2;//第一行for(int i = 0 ; i < s.size() ; i += d){ret += s[i];}//第k行for(int row = 1 ; row < numRows - 1 ; row++){for(int i = row ,j = d - row ; i < s.size() || j < s.size(); i += d, j += d){if(i < s.size()) ret += s[i];if(j < s.size()) ret += s[j];}}//最后一行for(int i = numRows - 1 ; i < s.size() ; i += d){ret += s[i];}return ret;}
};

我们把字符串的下标按题目要求写成‘Z’字,然后去寻找规律:

class Solution {
public:string countAndSay(int n) {string ret = "1";for(int i = 1 ; i < n ; i++){string tmp;for(int left = 0, right = 0 ; right < ret.size() ;){while(right < ret.size() && ret[left] == ret[right]) right++;tmp += to_string(right - left) + ret[left];left = right;}ret = tmp;}return ret;}
};

题目分析:假设我们现在有数列 4 4 4 5 5 8 7 7 7 7,我们可以这样得到它的迭代,使用双指针,left = 0,right=0,然后right++,直到nums[right] != nums[left],此时双指针区间的就是right-left哥nums[left],记录下来,然后让left=right,继续right++,直到nums[right] != nums[left],依次往复这个过程,直到走到最后。

class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {string str = "croak";int n = str.size();//vector<int> hash(n);int hash[5] = {0};unordered_map<char,int> map;for(int i = 0; i < n ; i++)map[str[i]] = i;for(auto ch : croakOfFrogs){if(ch == str[0]){if(hash[n-1]) hash[n-1]--;hash[0]++;}else{if(hash[map[ch]-1]) {hash[map[ch]-1]--;hash[map[ch]]++;}else return -1;}}for(int i = 0 ; i < n-1 ; i++){if(hash[i]) return -1;}return hash[n-1];}
};

题目分析:这道题仍然是采用模拟的方法解决。我们要创建一个哈希表,这个哈希表存放"c","r","o","a","k"五个字符出现的个数。

具体来说,从前往后遍历所给字符串,如果这个字符是"r","o","a","k",就去哈希表中找一下前驱字符(比如“r”的前驱字符是“c”,“k”的前驱字符是“a”,找前驱字符我们需要另外创建一个哈希表),如果其前驱字符存在,那么前驱字符个数--,当前字符个数++;如果其前驱字符不存在,则返回-1,表明这个字符无效,因为其前驱字符未被叫出来。

如果这个字符是“c”,我们需要找最后一个字符,是否在哈希表中存在,如果存在,表明现在有空闲的青蛙,让这个空闲的青蛙去叫,也就是最后一个字符--,当前字符++;如果不存在,那么当前字符++。

 

相关文章:

【LeetCode热题100】模拟

这篇博客记录了模拟相关的题目&#xff0c;也就是按照题目的描述写代码&#xff0c;很锻炼代码实现能力&#xff0c;包括了替换所有的问号、Z字形变换、外观数列、数青蛙4道题。 class Solution { public:string modifyString(string s) {int n s.size();for(int i 0 ; i <…...

如何在Chrome最新浏览器中调用ActiveX控件?

小编最近登陆工商银行网上银行&#xff0c;发现工商银行的个人网银网页&#xff0c;由于使用了ActiveX安全控件&#xff0c;导致不能用高版本Chrome浏览器打开&#xff0c;目前只有使用IE或基于IE内核的浏览器才能正常登录网上银行&#xff0c;而IE已经彻底停止更新了&#xff…...

一款好用的远程连接工具:MobaXterm

在日常工作中&#xff0c;作为开发者或运维人员&#xff0c;你是否经常需要远程连接服务器进行调试和管理&#xff1f;传统的SSH工具常常不够灵活&#xff0c;操作繁琐&#xff0c;无法满足日益复杂的工作需求。而MobaXterm的出现&#xff0c;带来了远程连接工具的全新体验。它…...

Spring Boot使用配置方式整合MyBatis

文章目录 一、实战目标二、步骤概览1. 创建部门映射器接口2. 创建映射器配置文件3. 配置全局映射器4. 测试映射器接口 三、详细步骤1、创建部门映射器接口2、创建映射器配置文件3、配置全局映射器4、测试映射器接口 四、结语 一、实战目标 在本实战课程中&#xff0c;我们将学…...

HarmonyOS第一课-应用程序框架基础习题答案

声明&#xff1a;本题库为最新的HarmonyOS第一课的学习题库&#xff0c;仅供参考学习&#xff01; 一、判断题 1. 在基于Stage模型开发的应用项目中都存在一个app.json5配置文件、以及一个或多个module.json5配置文件。&#xff08;正确&#xff09; 正确(True) 错误(False) -…...

滚雪球学SpringCloud[10.2讲]:微服务项目的性能优化与调优

全文目录: 前言性能优化与调优概述性能优化的核心目标常见的性能瓶颈来源 性能瓶颈分析与调优策略1. 服务间通信优化优化策略&#xff1a; 2. 数据库优化优化策略&#xff1a; 3. 线程池优化优化策略&#xff1a; 4. 缓存优化优化策略&#xff1a; 常见问题的排查与解决1. 慢查…...

EasyExcel将数据库里面的数据生成excel文件

EasyExcel官方文档 1.在model模块导入依赖 <!-- 生成报表--> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.3</version> </dependency> 2.修饰实体类 package…...

【YOLO学习】YOLOv1详解

文章目录 1. 概述2. 算法流程3. 网络结构4. 损失函数 1. 概述 1. YOLO 的全称是 You Only Look Once: Unified, Real-Time Object Detection。YOLOv1 的核心思想就是利用整张图作为网络的输入&#xff0c;直接在输出层回归 bounding box 的位置和 bounding box 所属的类别。简单…...

HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)

致力于&#xff0c;UI开发拿来即用&#xff0c;提高开发效率 常量格式枚举enum格式正则表达式...手机号校验...邮箱校验 文件判断文件是否存在 网络下载下载图片从沙箱中图片转为Base64格式从资源文件中读取图片转Base64 组件输入框...矩形输入框...输入框堆叠效果&#xff08;…...

python测试开发---前后端交互Axios

Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;常用于浏览器和 Node.js 中发送 HTTP 请求。它封装了 XMLHttpRequest 和 Node.js 的 http 模块&#xff0c;使得处理网络请求更加简单和直观&#xff0c;尤其适合处理异步请求。以下是 Axios 的基础概念和使用方法&#xf…...

删除视频最后几帧 剪切视频

删除视频最后几帧 剪切视频 remove_last.py import subprocess def remove_last_frame(input_file, output_file, frame_rate):command_duration [ffprobe,-v, error,-show_entries, formatduration,-of, defaultnoprint_wrappers1:nokey1,input_file]try:total_duration fl…...

SSM框架学习(四、SpringMVC实战:构建高效表述层框架)

目录 一、SpringMVC简介和体验 1.介绍 2.主要作用 3.核心组件和调用流程理解 4.快速体验 二、SpringMVC接收数据 1.访问路径设置 &#xff08;1&#xff09;精准路径匹配 &#xff08;2&#xff09;模糊路径匹配 &#xff08;3&#xff09;类和方法上添加 RequestMapp…...

戴尔笔记本电脑——重装系统

说明&#xff1a;我的电脑是戴尔G3笔记本电脑。 第一步&#xff1a;按照正常的装系统步骤&#xff0c;配置并进入U盘的PE系统 如果进入PE系统&#xff0c;一部分的硬盘找不到&#xff0c;解决办法&#xff1a;U盘PE系统——出现部分硬盘找不到的解决办法 第二步&#xff1a;磁…...

领夹麦克风哪个品牌音质最好,主播一般用什么麦克风

在这个信息爆炸的时代&#xff0c;清晰的声音传达显得尤为重要。无论是激情澎湃的演讲&#xff0c;还是温馨动人的访谈&#xff0c;一款优质的无线领夹麦克风都能让声音清晰的传播。但市场上产品繁多&#xff0c;如何挑选出性价比高、性能卓越的无线领夹麦克风呢&#xff1f;本…...

华为静态路由(route-static)

静态路由的组成 在华为路由器中&#xff0c;使用ip route-static命令配置静态路由。 一条静态路由主要包含以下要素&#xff1a; 目的地址&#xff1a;数据包要到达的目标IP地址 子网掩码&#xff1a;用于指定目的地址的网络部分和主机部分 下一跳地址&#xff08;可选&#…...

Focalboard开源项目管理系统本地Windows部署与远程访问协同办公

文章目录 前言1. 使用Docker本地部署Focalboard1.1 在Windows中安装 Docker1.2 使用Docker部署Focalboard 2. 安装Cpolar内网穿透工具3. 实现公网访问Focalboard4. 固定Focalboard公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&am…...

Java如何操作Elasticsearch

目录 前言 Procuct实体类 一、操作索引 二、操作文档 三、查询文档 四、复杂条件查询 五、分页查询 六、结果排序 本文文章介绍的是通过template的方法操作elasticsearch&#xff0c;他的话直接本地注入使用就行&#xff0c;repository方法还需要实现接口&#xff0c;所…...

cpu路、核、线程、主频、缓存

路&#xff1a;主板插口实际插入的 CPU 个数&#xff0c;也可以理解为主板上支持的CPU的数量。每个CPU插槽可以插入一个物理处理器芯片。例如&#xff0c;一台服务器可能有2路或4路插槽&#xff0c;这意味着它最多可以安装2个或4个物理处理器。 核&#xff1a;单块 CPU 上面能…...

【AI算法岗面试八股面经【超全整理】——深度学习】

AI算法岗面试八股面经【超全整理】 概率论【AI算法岗面试八股面经【超全整理】——概率论】信息论【AI算法岗面试八股面经【超全整理】——信息论】机器学习【AI算法岗面试八股面经【超全整理】——机器学习】深度学习【AI算法岗面试八股面经【超全整理】——深度学习】NLP【A…...

STL——map和set【map和set的介绍和使用】【multimap和multiset】

目录 map和set1.关联式容器2.键值对3.树形结构的关联式容器3.1set3.1.1set的介绍3.1.2set的使用3.1.2.1set的模版参数列表3.1.2.2set的构造3.1.2.3set的迭代器3.1.2.4set基本接口的使用3.1.2.5set使用案例 3.2map3.2.1map介绍3.2.2map的使用3.2.2.1map的构造3.2.2.2map的迭代器…...

Joy-Con Toolkit:突破官方限制的任天堂手柄全能控制工具

Joy-Con Toolkit&#xff1a;突破官方限制的任天堂手柄全能控制工具 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit 重新定义手柄控制&#xff1a;从消费级到开发级的跨越 Joy-Con控制器作为任天堂Switch的核心…...

Qwen2-VL-2B-Instruct助力Java开发:智能代码注释与文档生成实战

Qwen2-VL-2B-Instruct助力Java开发&#xff1a;智能代码注释与文档生成实战 写Java代码最烦什么&#xff1f;对我来说&#xff0c;除了调试那些神出鬼没的Bug&#xff0c;就是写注释和文档了。明明代码逻辑自己一清二楚&#xff0c;但要把它转化成清晰、规范的文档&#xff0c…...

Faster-Whisper架构解析:基于CTranslate2的高性能语音识别优化方案

Faster-Whisper架构解析&#xff1a;基于CTranslate2的高性能语音识别优化方案 【免费下载链接】faster-whisper plotly/plotly.js: 是一个用于创建交互式图形和数据可视化的 JavaScript 库。适合在需要创建交互式图形和数据可视化的网页中使用。特点是提供了一种简单、易用的 …...

孤能子视角:“智能动力学“,AI的“自指“分析

(我将【孤能子视角:“关系“通透&#xff0c;难转译为“实体“ - CSDN App】https://blog.csdn.net/lzmtw/article/details/159602104?sharetypeblog&shareId159602104&sharereferAPP&sharesourcelzmtw&sharefromlink的内容贴给悟空浏览器的悟空AI&#xff0c…...

告别模拟信号烦恼:手把手教你用51单片机驱动DAC0832输出正弦波(附Proteus仿真)

51单片机实战&#xff1a;用DAC0832打造完美正弦波发生器 在电子设计领域&#xff0c;能够精确生成模拟信号是一项基础却至关重要的技能。想象一下&#xff0c;当你亲手搭建的电路在示波器上显示出光滑的正弦波形时&#xff0c;那种成就感是无与伦比的。本文将带你从零开始&…...

REFramework技术实战指南:问题解决与架构优化

REFramework技术实战指南&#xff1a;问题解决与架构优化 【免费下载链接】REFramework REFramework 是 RE 引擎游戏的 mod 框架、脚本平台和工具集&#xff0c;能安装各类 mod&#xff0c;修复游戏崩溃、卡顿等问题&#xff0c;还有开发者工具&#xff0c;让游戏体验更丰富。 …...

倩女幽魂易语言源码|支持编译运行,适合易语言开发者学习研究

温馨提示&#xff1a;文末有联系方式【标一】可编译倩女幽魂易语言源码开放 本套源码基于易语言开发&#xff0c;已完成基础环境配置与编译测试&#xff0c;生成的程序可正常启动并执行核心逻辑。 适用于熟悉易语言语法、掌握API调用与内存读写技术的开发者。【标二】仅面向具备…...

解决设计开发断层:Figma Code Connect的7个革新性实践

解决设计开发断层&#xff1a;Figma Code Connect的7个革新性实践 【免费下载链接】code-connect A tool for connecting your design system components in code with your design system in Figma 项目地址: https://gitcode.com/GitHub_Trending/co/code-connect 设计…...

从‘找不到设备’到驱动成功:3DSystems Touch HID 在Linux下的连接问题全解析与诊断工具使用

从‘找不到设备’到驱动成功&#xff1a;3DSystems Touch HID 在Linux下的连接问题全解析与诊断工具使用 当你在Ubuntu系统中第一次连接3DSystems Touch HID设备时&#xff0c;可能会遇到各种令人困惑的问题——设备无法识别、动态链接库错误、/dev/ttyACM*设备消失等。这些问…...

LFM2.5-1.2B-Thinking-GGUF入门指南:Web UI界面功能与Thinking后处理解读

LFM2.5-1.2B-Thinking-GGUF入门指南&#xff1a;Web UI界面功能与Thinking后处理解读 1. 模型与平台简介 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。该模型采用GGUF格式存储&#xff0c;配合llama.cpp运行时&#x…...