代码随想录算法训练营第七天| 344.反转字符串,541.反转字符串Ⅱ,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串

344.反转字符串

文章讲解:代码随想录

视频讲解:字符串基础操作! | LeetCode:344.反转字符串_哔哩哔哩_bilibili

题目链接:. - 力扣(LeetCode)

解题思路:

        无

  • 时间复杂度: O(n)
  • 空间复杂度: O(1)

关键点:

        无

c++代码:

class Solution 
{
public:void reverseString(vector<char>& s) {int len = s.size();for(int i = 0,j = len-1;i<len/2;i++,j--){swap(s[i],s[j]);}}
};

541.反转字符串Ⅱ

文章讲解:代码随想录

视频讲解:字符串操作进阶! | LeetCode:541. 反转字符串II_哔哩哔哩_bilibili

题目链接:. - 力扣(LeetCode)

解题思路:

        无

  • 时间复杂度: O(n)
  • 空间复杂度: O(1)

关键点:

        无

c++代码:

class Solution 
{
public:string reverseStr(string s, int k) {for(int i = 0;i<s.size();i += 2*k){if(i+k <= s.size()){reverse(s.begin()+i,s.begin()+i+k);}else if(i+k > s.size()){reverse(s.begin()+i,s.end());}}return s;}
};

卡码网:54.替换数字

文章讲解:代码随想录

视频讲解:无

题目链接:54. 替换数字(第八期模拟笔试)

解题思路:

        无

关键点:

        无

c++代码:

#include<iostream>
using namespace std;
int main() 
{string s;while (cin >> s) {int count = 0; // 统计数字的个数int sOldSize = s.size();for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {count++;}}// 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小s.resize(s.size() + count * 5);int sNewSize = s.size();// 从后先前将空格替换为"number"for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) {if (s[j] > '9' || s[j] < '0') {s[i] = s[j];} else {s[i] = 'r';s[i - 1] = 'e';s[i - 2] = 'b';s[i - 3] = 'm';s[i - 4] = 'u';s[i - 5] = 'n';i -= 5;}}cout << s << endl;}
}

151.翻转字符串里的单词

文章讲解:代码随想录

视频讲解:字符串复杂操作拿捏了! | LeetCode:151.翻转字符串里的单词_哔哩哔哩_bilibili

题目链接:. - 力扣(LeetCode)

解题思路:

        无

  • 时间复杂度: O(n)
  • 空间复杂度: O(1) 或 O(n),取决于语言中字符串是否可变

关键点:

        无

c++代码:

class Solution 
{
public:void reverse(string& s, int start, int end){ //翻转,区间写法:左闭右闭 []for (int i = start, j = end; i < j; i++, j--) {swap(s[i], s[j]);}}void removeExtraSpaces(string& s) {//去除所有空格并在相邻单词之间添加空格, 快慢指针。int slow = 0;   //整体思想参考https://programmercarl.com/0027.移除元素.htmlfor (int i = 0; i < s.size(); ++i) { //if (s[i] != ' ') { //遇到非空格就处理,即删除所有空格。if (slow != 0) s[slow++] = ' '; //手动控制空格,给单词之间添加空格。slow != 0说明不是第一个单词,需要在单词前添加空格。while (i < s.size() && s[i] != ' ') { //补上该单词,遇到空格说明单词结束。s[slow++] = s[i++];}}}s.resize(slow); //slow的大小即为去除多余空格后的大小。}string reverseWords(string s) {removeExtraSpaces(s); //去除多余空格,保证单词之间之只有一个空格,且字符串首尾没空格。reverse(s, 0, s.size() - 1);int start = 0; //removeExtraSpaces后保证第一个单词的开始下标一定是0。for (int i = 0; i <= s.size(); ++i) {if (i == s.size() || s[i] == ' ') { //到达空格或者串尾,说明一个单词结束。进行翻转。reverse(s, start, i - 1); //翻转,注意是左闭右闭 []的翻转。start = i + 1; //更新下一个单词的开始下标start}}return s;}
};

卡码网:55.右旋转字符串

文章讲解:代码随想录

视频讲解:无

题目链接:55. 右旋字符串(第八期模拟笔试)

解题思路:

        无

  • 时间复杂度: O(n)
  • 空间复杂度: O(1) 或 O(n),取决于语言中字符串是否可变

关键点:

        无

c++代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main() 
{int n;string s;cin >> n;cin >> s;int len = s.size(); //获取长度reverse(s.begin(), s.end()); // 整体反转reverse(s.begin(), s.begin() + n); // 先反转前一段,长度nreverse(s.begin() + n, s.end()); // 再反转后一段cout << s << endl;} 

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

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

相关文章

S5PV210_视频编解码项目_裸机开发:实现按键的外部中断处理

加粗样式本文所作内容&#xff1a; 基于S5PV210芯片实现按键的外部中断处理程序&#xff0c;搭建中断处理流程框架 S5PV210对于中断处理的操作流程 1 外部中断得到触发&#xff1a; 1&#xff09;外部中断在初始化阶段得到使能 2&#xff09;外界达到了外部中断的触发条件 …

汉诺塔问题代码写法的详细解析

汉诺塔游戏规则&#xff1a; 规则&#xff1a; 汉诺塔问题是一个经典的问题。汉诺塔&#xff08;Hanoi Tower&#xff09;&#xff0c;又称河内塔&#xff0c;源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着…

有来团队后台项目-解析3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、引入Elment-plus安装element-plus安装icons修改tsconfig.json (可选)配置按需自动引入验证是否导入成功展示效果typings 文件夹里生成两个文件总结一、引入Elment-plus elementplus 安装el…

30天学会QT(进阶)--------------第二天(创建项目)

1、如何规范的创建一个项目 由于本人也是从其他的项目上学来的&#xff0c;所以也不算是业界规范&#xff0c;每个公司或者个人都有自己的方式去创建项目&#xff0c;项目的创建是本着简洁&#xff0c;明了&#xff0c;方便而言的&#xff0c;所以对于我来说&#xff0c;不繁琐…

案例--某站视频爬取

众所周知&#xff0c;某站的视频是&#xff1a; 由视频和音频分开的。 所以我们进行获取&#xff0c;需要分别获得它的音频和视频数据&#xff0c;然后进行音视频合并。 这么多年了&#xff0c;某站还是老样子&#xff0c;只要加个防盗链就能绕过。&#xff08;防止403&#xf…

蓝桥杯刷题(五)

[蓝桥杯 2022 省 B] 刷题统计 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a a…

RocketMQ学习笔记三(面试题)

【RocketMQ面试题&#xff08;23道&#xff09;】-CSDN博客 ------------------------------------------------------------------------------------------------ 最好的学习资源在官网&#xff1a;初识RocketMQ | RocketMQ (apache.org) 以下内容来源于官网哦。 基本概念…

fs模块 文件写入 之 追加写入

文件的同步、异步追加写入&#xff1a; 一、异步追加 &#xff08;1&#xff09;语法&#xff1a;fs.appendFile(path,data,[options],callback(data,err)) &#xff08;2&#xff09;操作 1》引入fs模块 const fsrequire(fs); 2》调用appendFile fs.appendFile(./我可以…

大数据开发(HBase面试真题-卷一)

大数据开发&#xff08;HBase面试真题&#xff09; 1、请解释Hive和HBase之间的主要区别&#xff1f;2、描述一下Apache HBase与关系数据库之间有何区别&#xff1f;3、简要介绍HDFS和HBase&#xff0c;并描述它们适用的场景。4、HBase Column Family的概念是什么&#xff1f;5…

如何发现并防范“隐蔽式”CC攻击

网络安全是当今互联网时代不可忽视的重要议题。随着科技的发展&#xff0c;黑客渗透技术也日益复杂和潜在危险。德迅云安全为用户提供全方位的保护&#xff0c;确保用户信息安全 http&https是什么&#xff1f; HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超…

学python新手如何安装pycharm;python小白如何安装pycharm

首先找到官网&#xff1a; Download PyCharm: The Python IDE for data science and web development by JetBrains 打开后选择下载&#xff0c;下图标红部分 点击exe程序&#xff0c;点击下一步&#xff01; 选择安装路径&#xff0c;下一步 弹出界面全选 选择默认 然后直接…

前端面试练习24.3.13

1.请描述下对vue生命周期的理解 Vue 组件的生命周期是指组件从创建、挂载到销毁的整个过程中所经历的一系列钩子函数的调用顺序。 在vue3 中&#xff0c;我们使用了组合式的API&#xff0c;使用了setup语法糖&#xff0c;提供了更灵活的方式来组织组件的逻辑&#xff0c;不再依…

Java基于微信小程序的校园生活互助小助手

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

小米官网登录注册的滑动效果

小米官网登录注册的滑动效果 登录组成页面 <div class"client"><div class"userbox"><div class"title"><a href"javascript:;" class"active" id"DL">登录</a><a href&quo…

Android工具adb下载安装环境配置详细教程

Android工具adb的下载安装与环境配置详细教程如下&#xff1a; 一、下载ADB ADB通常作为Android SDK的一部分提供&#xff0c;因此&#xff0c;您可以从Android开发者网站下载Android Studio&#xff0c;并在安装时选择包括ADB。 另外&#xff0c;您也可以通过官方下载地址直…

使用tui-image-editor 图片编辑 标注图片

需求背景&#xff1a; 鼠标悬浮在图片上 出现编辑按钮 点击编辑 对该图片进行编辑&#xff08;输入文案、涂鸦、标记、裁剪等&#xff09; 可以体验一下它线上编辑器 Image-editor | TOAST UI :: Make Your Web Delicious! 使用 首先在你的前端项目中安装&#xff1a; np…

高概率文字生成Stable Cascade Comfyui极简安装教程

Stable Diffisuin 2.1之前的模型的痛点是不能生成文字&#xff0c;SDXL能生成文字&#xff0c;但正确率极低。Stable Diffusion 3据说能生成高画质图的同时&#xff0c;还能正确输出文字&#xff0c;但......还不能下载到。这中间stability.ai出了一个Stable Cascade模型。工作…

Spring MVC中常用注解

文章目录 Spring MVC 框架提供了一系列注解&#xff0c;用于简化开发者的编码工作&#xff0c;并提高代码的可读性和可维护性。以下是 Spring MVC 中常用的注解&#xff1a;Controller&#xff1a;RestController&#xff1a;RequestMapping&#xff1a;PathVariable&#xff1…

dp7——博弈

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 博弈dp需要记录玩家的转换 下位01 486. 预测赢家⭐思想⭐相似题目464. 我能赢吗877. 石子游戏 博弈 dp需要记录玩家的转换 下位 01 486. 预测赢家⭐ 思想⭐ dp定义的是当前玩家 如dp[i] 代表A 则dp[i 1] 代表…

多模态大模型Claude 3正式接入集简云与语聚!对标GPT-4且支持中文

自OpenAI发布GPT-4以来&#xff0c;引发了业务模式与应用使用的巨大变革&#xff0c;掀起了各大企业对于多模态大模型的研究热潮。3月初&#xff0c;AnthropicClaude在官网正式发布Claude 3系列多模态大模型&#xff0c;据了解&#xff0c;该模型在多个维度上超越了GPT-4&#…