专题六——模拟

目录

一替换所有的问号

二提莫攻击  

三N字形变换 

四外观数列

五数青蛙


一替换所有的问号

oj链接:替换所有的问号

思路:简单模拟;注意i==0和i==n是处理越界问题就行!! 

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;}
};

二提莫攻击  

oj链接:提莫攻击 

思路:模拟 + 找规律

1.先计算出timeSeries两者之间的差值:x,会有两种情况:

a.如果x>=duration:中毒时间不会被重置

b.如果x<duration: 中毒时间要重置,加上x即可,会不会在重置具体看后面

最后return时要把timeSerise[n-1]的中毒时间给加上!!

class Solution
{
public:int findPoisonedDuration(vector<int> &timeSeries, int duration){int n = timeSeries.size(), ret = 0;for (int i = 1; i < n; i++){int x = timeSeries[i] - timeSeries[i - 1];if (x >= duration)ret += duration;elseret += x;}return ret + duration; // 最后的中毒时间要加上}
};

三N字形变换 

oj链接:N字形变换 

思路:

解法1:开辟空间来模拟填表:用flag进行标记

a.如果是第一行:flag为正数,往下进行填表

b.如果是最后一行:falg为负数,往上进行填表

解法2:找规律

 


//解法1:模拟
class Solution {
public:string convert(string s, int numRows) {if(numRows<2) return s;int n=s.size();vector<string> v(numRows);int i=0,flag=-1;//flag是关键!//用flag进行填表for(auto& e:s){v[i].push_back(e);if(i==0||i==numRows-1) flag=-flag;i+=flag;}string ret;for(auto& e:v){ret+=e;}return ret;}
};//解法2:找规律
class Solution {
public:string convert(string s, int numRows) {if(numRows==1) return s;int n=s.size(),d=2*numRows-2;string ret;for(int i=0;i<numRows;i++){//填第一行与最后一行if(i==0||i==numRows-1){int j=i;while(j<n){ret+=s[j];j+=d;}}//中间行时要注意越界else{int j=i,r=d-i;//不确定是那个先越界while(j<n || r<n){if(j<n) ret+=s[j];if(r<n) ret+=s[r];j+=d;r+=d;}  }}return ret;}
};

四外观数列

oj链接:外观数列

思路:模拟(统计前面字符出现的个数即可)

class Solution {
public:string countAndSay(int n) {string ret="1";for(int i=2;i<=n;i++){string ret1;for(int i=0;i<ret.size();i++){int cnt=1;//统计个数while(i+1<ret.size()&&ret[i]==ret[i+1]) cnt++,i++;ret1+=to_string(cnt);ret1+=ret[i];}ret=ret1;}return ret;}
};

五数青蛙

oj链接:数青蛙

思路:模拟:遍历字符串;要用hash表储存进行遍历过程中字符个数

a.如果遇到c之后的字符:r,o,a,k:判断前驱字符:c,r,o,a是否为0

如果为0,直接return -1

不为0,前驱字符--,当前字符++;

b.如果遇到c字符,只要判断字符k是否为0

如果为0,c字符++;

如果不为0,c字符++,k字符--;

遍历完成后,要再次进行对k之前的字符个数进行判断是否为0:

如果其中一个的字符个数不为0:return -1

如果没有:return 最少青蛙的个数,即:k字符的个数

class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {string s="croak";int n=s.size();vector<int> hash(n);//数组模拟哈希表,数组下标对应字符unordered_map<char,int> index;//【字符,字符对应的下标】进行查找字符对应的下标(辅助)for(int i=0;i<n;i++) index[s[i]]=i;for(auto& ch:croakOfFrogs){if(ch=='c'){//看看k字符的情况if(hash[n-1]) hash[n-1]--;hash[0]++;}else{int i=index[ch];if(hash[i-1]==0) return -1;hash[i-1]--;hash[i]++;}}for(int i=0;i<n-1;i++) if(hash[i]!=0) return -1;return hash[n-1];   }
};

 以上便是有关模拟的相关题目:有问题欢迎在评论区指出,谢谢!!

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

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

相关文章

docker容器基本原理简介

一、docker容器实例运行的在linux上是一个进程 1&#xff09;、我们通过docker run 通过镜像运行启动的在linux上其实是一个进程&#xff0c;例如我们通过命令运行一个redis&#xff1a; docker run -d --name myredis redis2&#xff09;、可以看到首先我们本地还没有redis镜…

【LeetCode最详尽解答】11-盛最多水的容器 Container-With-Most-Water

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家&#xff01; 链接&#xff1a; 11-盛最多水的容器 直觉 这个问题可以通过可视化图表来理解和解决。 通过图形化这个…

「动态规划」如何求乘积最大子数组?

152. 乘积最大子数组https://leetcode.cn/problems/maximum-product-subarray/description/ 给你一个整数数组nums&#xff0c;请你找出数组中乘积最大的非空连续子数组&#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。测试用例的…

【数据结构】初识集合深入剖析顺序表(Arraylist)

【数据结构】初识集合&深入剖析顺序表&#xff08;Arraylist&#xff09; 集合体系结构集合的遍历迭代器增强for遍历lambda表达式 List接口中的增删查改List的5种遍历ArrayList详解ArrayList的创建ArrayList的增删查改ArrayList的遍历ArrayList的底层原理 &#x1f680;所属…

【全栈实战】大模型自学:从入门到实战打怪升级,20W字总结(一)

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本栏讲解【全栈实战】大模型自学&#xff1a;从入门到实战打怪升级。 &#x1f514;专栏持续更新&#xff0c;适合人群&#xff1a;本科生、研究生、大模型爱好者&#xff0c;期…

JVM-GC-什么是垃圾

JVM-GC-什么是垃圾 前言 所谓垃圾其实是指&#xff0c;内存中没用的数据&#xff1b;没有任何引用指向这块内存&#xff0c;或者没有任何指针指向这块内存。没有的数据应该被清除&#xff0c;垃圾的处理其实是内存管理问题。 JVM虽然不直接遵循冯诺依曼计算机体系架构&#…

基于flask的网站如何使用https加密通信-问题记录

文章目录 项目场景&#xff1a;问题1问题描述原因分析解决步骤解决方案 问题2问题描述原因分析解决方案 参考文章 项目场景&#xff1a; 项目场景&#xff1a;基于flask的网站使用https加密通信一文中遇到的问题记录 问题1 问题描述 使用下面的命令生成自签名的SSL/TLS证书和…

Docker镜像技术剖析

目录 1、概述1.1 什么是镜像&#xff1f;1.2 联合文件系统UnionFS1.3 bootfs和rootfs1.4 镜像结构1.5 镜像的主要技术特点1.5.1 镜像分层技术1.5.2 写时复制(copy-on-write)策略1.5.3 内容寻址存储(content-addressable storage)机制1.5.4 联合挂载(union mount)技术 2.机制原理…

用PHP来调用API给自己定制一个“每日新闻”

头条新闻汇聚了互联网上的时事动态&#xff0c;提供最新新闻动态、网络热门话题和视频更新等&#xff0c;覆盖社会、政治、体育、经济、娱乐、科技等多个领域&#xff0c;并不断刷新内容。企业应用这一接口后&#xff0c;可以快速吸引更多的用户访问自己的平台。即使是非新闻类…

有趣的傅里叶变换与小波变换对比(Python)

不严谨的说&#xff0c;时域和频域分析就是在不同的空间看待问题的&#xff0c;不同空间所对应的原子(基函数)是不同的。你想一下时域空间的基函数是什么&#xff1f;频域空间的基函数是什么&#xff1f;一般的时-频联合域空间的基函数是什么&#xff1f;小波域空间的基函数是什…

摄影师在人工智能竞赛中与机器较量并获胜

摄影师在人工智能竞赛中与机器较量并获胜 自从生成式人工智能出现以来&#xff0c;由来已久的人机大战显然呈现出一边倒的态势。但是有一位摄影师&#xff0c;一心想证明用人眼拍摄的照片是有道理的&#xff0c;他向算法驱动的竞争对手发起了挑战&#xff0c;并取得了胜利。 迈…

代码随想录第29天|贪心算法part3

134.加油站 首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈 每个加油站的剩余量rest[i]为gas[i] - cost[i] 从0开始累加rest[i]&#xff0c;和记为curSum&#xff0c;一旦curSum小于零&#xff0c;说明[0, i]区间都不能作为起始位置 因为我们一直维护的是一个剩余量大…

HCIA11 网络安全之本地 AAA 配置实验

AAA 提供 Authentication&#xff08;认证&#xff09;、Authorization&#xff08;授权&#xff09;和 Accounting&#xff08;计费&#xff09;三种安全功能。 • 认证&#xff1a;验证用户是否可以获得网络访问权。 • 授权&#xff1a;授权用户可以使用哪些服务。 •…

机器学习中的监督学习介绍

In this post well go into the concept of supervised learning, the requirements for machines to learn, and the process of learning and enhancing prediction accuracy. 在这篇文章中&#xff0c;我们将深入探讨监督学习的概念、机器学习的要求以及学习和提高预测准确…

归纳贪心好题

很有趣的一道归纳贪心题目 class Solution { public:int minimumAddedCoins(vector<int>& coins, int target) {sort(coins.begin(),coins.end());int n coins.size();int s 0,i0;int res 0;while(s<target){if(i<n&&coins[i]<s1)scoins[i];els…

顶顶通呼叫中心中间件-限制最大通话时间(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-限制最大通话时间(mod_cti基于FreeSWITCH) 一、最大通话时间 1、配置拨号方案 1、点击拨号方案 ->2、在框中输入通话最大时长->3、点击添加->4、根据图中配置->5、勾选continue。修改拨号方案需要等待一分钟即可生效 action"sched…

9M高速USB转接芯片CH347转双串口转I2C转SPI转JTAG转SWD

1、概述 CH347 TSSOP20封装和丝印 CH347 是一款高速 USB 总线转接芯片&#xff0c;通过 USB 总线提供异步串口、I2C 同步串行接口、SPI 同步串行接口和 JTAG 接口等。 在异步串口方式下&#xff0c;CH347 提供了 2 个高速串口&#xff0c;支持 RS485 串口收发使能控制、硬件流控…

LeetCode | 387.字符串中的第一个唯一字符

这道题可以用字典解决&#xff0c;只需要2次遍历字符串&#xff0c;第一次遍历字符串&#xff0c;记录每个字符出现的次数&#xff0c;第二次返回第一个出现次数为1的字符的下标&#xff0c;若找不到则返回-1 class Solution(object):def firstUniqChar(self, s):""…

Python自动化办公(一) —— 根据PDF文件批量创建Word文档

Python自动化办公&#xff08;一&#xff09; —— 根据PDF文件批量创建Word文档 在日常办公中&#xff0c;我们经常需要根据现有的PDF文件批量创建Word文档。手动操作不仅费时费力&#xff0c;而且容易出错。幸运的是&#xff0c;使用Python可以轻松实现这个过程。本文将介绍如…

linux的repo工具的入门

repo 是一个工具&#xff0c;用于管理 Git 仓库的集合&#xff0c;尤其在 Android 开发中被广泛使用。它是 Google 为 Android 项目开发的&#xff0c;以简化对大量 Git 仓库的管理。 主要特点 多仓库管理&#xff1a;repo 允许同时管理多个 Git 仓库&#xff0c;可以轻松执行…