leetcode刷题(模拟问题)

题一:替换所有的问号

 1.链接

1576. 替换所有的问号 - 力扣(LeetCode)

2.思路

这道题,最重要的就是理解什么是连续重复的字符

连续重复字符是指:相同字母连在一起多次出现

  • 先遍历这个数组,去找到  ?出现的位置
  • 找到后,就对该位置进行替换,替换的原则是:不和左右的字母相同即可
  • 当找到了一个符合原则的字母,就退出循环
  • 完成这个操作后,在继续往后面去找?出现的位置,继续上面操作

 边界问题

 由于这里会进行对 i -1 和 i + 1 位置的访问,为了避免出现数组越界访问,就单独处理 ? 出现在第一个位置和最后一个位置的情况

3.代码

class Solution {
public:string modifyString(string s) {int n = s.size();//当?出现在第一个位置if (s[0] == '?') {for (int i = 0; i <= 26; i++) {if (s[1] != i + 'a') {s[0] = i + 'a';break;}}}//当?出现在中间位置for (int i = 1; i < n; i++) {if (s[i] == '?') {for (int j = 0; j <= 26; j++)if (s[i - 1] != j + 'a' && s[i + 1] != j + 'a') {s[i] = j + 'a';break;}}}//当?出现在最后一个位置if (s[n-1] == '?' && n >= 2) {for (int i = 0; i <= 26; i++) {if (s[n - 2] != i + 'a') {s[n - 2] = i + 'a';break;}}}return s;}
};

 题二:提莫攻击

 1.链接

495. 提莫攻击 - 力扣(LeetCode)

2.思路

  • 我们定义一个变量 sum,用来累加每次攻击所造成的中毒的时长。
  • 问题的关键就是:发动攻击后,中毒时间该如何去算。此刻我们要将相邻二次攻击的时间差 ( gap )和中毒持续时间进行比较。
  • 当 gap >= 中毒持续时间,那么就可以完成本次中毒所要时间
  • 当 gap < 中毒持续时间,那么就会发生,本次攻击所造成的中毒还没有结束,就又开始了一次攻击,那么此刻我们去计算本次攻击所造成的中毒时间就等于 gap

本题的关键就是如何去累积算 sum ,这里我们要正确确定好每次计算中毒时长的范围。

sum 统计的是因为本次攻击所造成的中毒时长。  

3.代码

class Solution {
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int sum = 0;for (int i = 0; i < timeSeries.size() - 1; i++) {int gap = timeSeries[i + 1] - timeSeries[i];if (gap >= duration)sum += duration;elsesum += gap;}return sum + duration;}
};

题三:Z字形变换

1. 链接

6. Z 字形变换 - 力扣(LeetCode)

2.思路

这里的 Z 字形应该说是 N 字形更好。先从上往下,然后在沿对角线方向,在不断循环这个操作,直到没有字符 

 我们输出时,先输出第一行的,并按照从左往右的方向去输出,然后就是下一行,并也是按照从左往右去输出,这样重复操作,直到输完最后一行。

我们可以去观察原字符串数组下标与最后输出字符串的下标 ,行数的关系

  • 第一行和最后一行下标的关系是,同一行相邻二个数据下标之差等于:2*numRows - 2 
  • 当为中间的行数时,以示例二为例子,其Z字形的第二行为 A  L  S  I  G
  • 其中 A 与 L 之间的下标差距为2*行数 - 2 ,这里的行数是:此刻黑色方框所对应的Z字形的行数

  • L与S之间的下标差为:2 * 当前所处的行数

3.代码

class Solution {
public:string convert(string s, int numRows) {if (numRows == 1)return s;string ret;int gap = 2 * numRows - 2;for (int i = 0; i < numRows; i++) {int add = 2 * i, index = i;while (index < s.size()) {ret += s[index];add = gap - add;// 第一次间距是step -2*i,第二次是2*i, index += (i == 0 || i == numRows - 1) ? gap : add;}}return ret;}
};

题四: 外观数列

1.链接

38. 外观数列 - 力扣(LeetCode)

2.思路

核心思路:模拟+双指针操作

3.代码

class Solution {
public:string countAndSay(int n) {string ret = "1";for (int i = 1; i < n; i++) //只要进行n-1次操作{int left = 0, right = 0;string tmp;while (right < ret.size()) {while (ret[right] == ret[left] && right < ret.size()) {right++;}//出这个循环时,就代表此刻right所对应的值和left所对应的值不同tmp += to_string(right - left) + ret[left];left = right;}ret = tmp;}return ret;}
};


 

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

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

相关文章

C语言每日一题(56)平衡二叉树

力扣网 110 平衡二叉树 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,…

猫头虎分享已解决Bug || InvalidArgumentError in TensorFlow

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

网络报文处理流程

报文处理流程 WLAN网络中的数据包括管理报文和业务数据报文。管理报文必须采用CAPWAP隧道进行转发&#xff0c;而业务数据报文除了可以采用CAPWAP隧道转发之外&#xff0c;还可以采用直接转发方式和Soft-GRE转发方式。 管理报文用来传送AC与AP之间的管理数据&#xff0c;存在于…

苹果推出新型开源AI图像编辑模型“MGIE”;可汗学院辅助学习的GPT,Prompt 质量非常高

&#x1f989; AI新闻 &#x1f680; 苹果推出新型开源AI图像编辑模型“MGIE” 摘要&#xff1a;苹果公司最近发布了一个名为“MGIE”的开源人工智能模型&#xff0c;旨在通过自然语言指令对图片进行编辑。MGIE&#xff0c;全称MLLM-Guided Image Editing&#xff0c;依赖于多…

雨云裸金属服务器

雨云服务器与裸金属服务器&#xff1a;云端与实体的完美交融 随着信息技术的迅猛发展&#xff0c;云服务已经成为企业和个人数据处理与存储的重要选择。其中&#xff0c;雨云服务器和裸金属服务器作为两种截然不同的服务形式&#xff0c;各自拥有独特的优势和应用场景。本文将深…

【MySQL探索之旅】MySQL数据库下载及安装教程

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

1.Electron初始与安装

这里写目录标题 一、前言二、下载三、简要总结 一、前言 原文以及该系列后续文章请参考&#xff1a;安装Electron 随着前端的不断强盛&#xff0c;现在的前端已经不再满足于网页开发了&#xff0c;而是在尝试能否使用前端的开发逻辑来开发PC端的桌面软件。 即用html、js、css…

浅谈测试用例设计

前言 最近干的最多的事情就是设计测试用例、评审测试用例了&#xff0c;于是我不禁又想到了一个经典的问题&#xff1a;如何设计出优秀的测试用例&#xff1f; 可能有些童鞋看到这个问题会有些不以为然&#xff0c;这有什么好想的&#xff1f;干个测试谁还不会设计测试用例&a…

CSS之水平垂直居中

如何实现一个div的水平垂直居中 <div class"content-wrapper"><div class"content">content</div></div>flex布局 .content-wrapper {width: 400px;height: 400px;background-color: lightskyblue;display: flex;justify-content:…

【C语言进阶】深度剖析数据在内存中的存储--上

1. C语言中的数据类型的简单介绍 注&#xff1a;C99标准里面&#xff0c;定义了bool类型变量。这时&#xff0c;只要引入头文件stdbool.h &#xff0c;就能在C语言里面正常使用bool类型。 1.1 在C语言中各类型所占内存空间的大小如下 char类型的数据类型大小为1字节即8比特位。…

如何在PDF 文件中删除页面?

查看不同的工具以及解释如何在 Windows、Android、macOS 和 iOS 上从 PDF 删除页面的步骤&#xff1a; PDF 是最难处理的文件格式之一。曾经有一段时间&#xff0c;除了阅读之外&#xff0c;无法用 PDF 做任何事情。但是今天&#xff0c;有许多应用程序和工具可以让您用它们做…

用示波器测量这些参数你真的会吗?

大家好&#xff0c;我是砖一。 示波器是电子工程师最常见的仪器&#xff0c;很多人也把示波器比作工程师的“眼睛”&#xff0c;这也足以说明示波器对工程师有多重要。 信号是如何显示到示波器屏幕上的呢&#xff1f;在示波器上&#xff0c;信号传输经过探头内部的一系列电阻器…

通用防重幂等如何设计?

防重与幂等的区别 防重与幂等是在 Web 应用程序和分布式系统中重要而又非常常见的问题。 防重 防重是指在多次提交同样的请求过程中&#xff0c;系统会检测和消除重复的数据&#xff0c;确保相同的数据只会被处理一次&#xff0c;从而避免不必要的重复操作或产生错误的结果。…

MYSQL学习笔记:MYSQL存储引擎

MYSQL学习笔记&#xff1a;MYSQL存储引擎 MYSQL是插件式的存储引擎 存储引擎影响数据的存储方式 存储引擎是用来干什么的&#xff0c;innodb和myisam的主要区别–数据存储方式----索引 mysql> show engines; ----------------------------------------------------------…

Github 2024-02-07 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-07统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目2TypeScript项目2Python项目2Ruby项目1HTML项目1NASL项目1Go项目1C项目1Svelte项目1C项目1 React Nat…

C++ //练习 6.5 编写一个函数输出其实参的绝对值。

C Primer&#xff08;第5版&#xff09; 练习 6.5 练习 6.5 编写一个函数输出其实参的绝对值。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*************************************************************************&…

【Ubuntu】在.bashrc文件中误设置环境变量补救方法

这里是vim也不在PATH中了&#xff0c;因为 解决方法就是在输入vim之后提示的vim路径下用vim打开该文件&#xff0c;然后改回来

(三十六)大数据实战——ClickHouse数据库的部署安装实现

前言 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库 DBMS &#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08; OLAP &#xff09;&#xff0c;能够使用SQL查询实时生成分析数据报告。列式存储&#xff1a;数据按列进行存储&a…

【ES】--ES集成自定义分词库

目录 一、相关安装1、(window单机)elasticsearch安装2、安装Elasticvue插件3、ik分词器插件4、ES集成自定义词库 一、相关安装 1、(window单机)elasticsearch安装 Win10下下载ES组件&#xff0c;安装部署如下&#xff1a;JDK1.8、elasticsearch-7.3.2-windows-x86_64。 Elast…

qt “美颜”

要想成为一名优秀的qt工程师 学会使用qss编程也是重要的 不可获缺的一部分 qss 简介和优势 QSS&#xff08;Qt Style Sheets&#xff09;是一种用于定义Qt应用程序界面外观和样式的样式表语言。它类似于CSS&#xff08;层叠样式表&#xff09;&#xff0c;但针对Qt框架进行了定…