reverse函数的用法(reverse一般是左闭右开区间):

1.反转数组:
    int arr[] = {1, 2, 3, 4, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    // 反转数组arr的全部元素
    reverse(arr, arr + n); 

2.反转字符串:

    string str = "hello";
    // 反转整个字符串
    reverse(str.begin(), str.end()); 

3.反转容器部分元素:
    vector<int> vec = {1, 2, 3, 4, 5};
    // 反转vec中索引1到3(不包含4)位置的元素
    reverse(vec.begin() + 1, vec.begin() + 4); 
    

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{reverse(s.begin()+i,s.end());}}return s;}
};

创建一个变量i,将i赋值为0。当i属于0到数组长度范围内时,进入循环。i每次的步长为i+2*k。如果i+k小于数组总长度。则使用reverse函数交换i到i+k的值。否则,交换多余出来的元素的位置。跳出循环,返回s。 

 

class Solution {
public:void reverses(string&s,int start,int end){for(int i=start,j=end;i<j;i++,j--){swap(s[i],s[j]);}}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);continue;}else{reverse(s.begin()+i,s.end());}}return s;}
};

创建一个void类型子函数,命名为reverse将start和end传入reverse中。 创建两个新的变量i和j。将start赋值给i,将end赋值给j。当i<j时进入循环,调换s[i]和s[j]的值。将i和j向里缩。跳出循环。创建一个string类型的主函数,命名为reverseStr,用来接受string类型的s,和int类型的k。定义一个变量初始化为0。当i小于数组总长度时,进入循环。i的步长为i+2*k。如果i+k小于数组总长度 。则使用reverse函数交换i到i+k的值。否则,交换多余出来的元素的位置。跳出循环,返回s。 

 

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

 创建一个变量i和pos,将i初始化为数组总长度,将pos初始化为0。当pos小于i时,进入循环。如果i+pos小于数组总长度。则使用reverse函数交换i到i+pos的值。否则,交换多余出来的元素的位置。i每次的步长为i+2*k。跳出循环,返回s。 

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

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

相关文章

企业可用免费软件 | 7-Zip,压缩率比 WinZip 高10%!

7-Zip是一款出色的文件压缩和存档工具&#xff0c;但实际上许多小伙伴们并不了解。它是一款开源的免费软件&#xff0c;目前支持87种语言&#xff0c;适用于所有系统&#xff0c;软件操作界面也十分简洁&#xff0c;大部分代码都在GNU LGPL许可下。除了免费无广告的优点之外&am…

Gradio全解20——Streaming:流式传输的多模态应用(1)——Mistral-7B实现流式传输音频:魔力8号球

Gradio全解20——Streaming&#xff1a;流式传输的多模态应用&#xff08;1&#xff09;——Mistral-7B实现流式传输音频&#xff1a;魔力8号球 前言本篇摘要20. Streaming&#xff1a;流式传输的多模态应用20.1 Mistral-7B实现流式传输音频&#xff1a;魔力8号球20.1.1 工作原…

Qt实现网页内嵌

文章目录 一、环境准备 二、代码实现 三、测试 一、环境准备 首先&#xff0c;确保你的Qt安装包含了QtWebEngine模块。我的Qt是5.12.9并且使用MSVC来编译项目。在项目文件中需要添加以下配置&#xff0c;其中在Qt中配置MSVC&#xff0c;建议去看看这位大佬的博客&#xff1a…

conda管理python环境

其他文章 服务容错治理框架resilience4j&sentinel基础应用---微服务的限流/熔断/降级解决方案-CSDN博客 conda管理python环境-CSDN博客 快速搭建对象存储服务 - Minio&#xff0c;并解决临时地址暴露ip、短链接请求改变浏览器地址等问题-CSDN博客 大模型LLMs的MCP入门-…

Android工厂模式

前言 工厂模式是创建型模式&#xff0c;使我们常用/常见的模式之一。多用于需要生成复杂对象的地方。用new就可以完成创建的对象就无需使用。工厂模式降低了对象之间的耦合度&#xff0c;由于工厂模式依赖抽象的架构&#xff0c;实例化的任务交由子类去完成&#xff0c;所以有…

【AI面试准备】数据驱动测试思维与实践指南

面试题&#xff1a;数据驱动思维 构建测试数据集&#xff1a;收集代码覆盖率、缺陷历史等数据。 模型训练优化&#xff1a;使用Jupyter Notebook分析特征重要性。 数据驱动思维是一种以数据为核心、基于数据分析结果进行决策的方法论。它强调通过量化分析、模式识别和预测建模…

内存碎片深度剖析

目录 什么是内存碎片 内部碎片的解决 malloc STL二级空间配置器 外部碎片的解决 伙伴系统算法 slab分配器 什么是内存碎片 内存碎片是指在内存中存在的一些不连续的、较小的空闲内存块&#xff0c;这些小块内存由于太小而无法被有效地分配给程序使用&#xff0c;从而导…

flutter 专题 六十一 支持上拉加载更多的自定义横向滑动表格

在股票软件中&#xff0c;经常会看到如下所示的效果&#xff08;ps&#xff1a;由于公司数据敏感&#xff0c;所以使用另一个朋友的一个图&#xff09;。 分析需要后&#xff0c;我先在网上找了下支持横向滑动的组件&#xff0c;最后找到了这个&#xff1a;flutter_horizontal…

0-1背包问题基础概念

一、问题描述 给定一个容量为 W 的背包和 n 个物品。每个物品有一个重量 w[i] 和价值 v[i]。每个物品只能选或不选&#xff08;即“0-1”&#xff09;&#xff0c;求在不超过背包容量的前提下&#xff0c;所能获得的最大总价值。 输入&#xff1a; 背包容量 W&#xff08;in…

使用 Semantic Kernel 快速对接国产大模型实战指南(DeepSeek/Qwen/GLM)

文章目录 使用 Semantic Kernel 快速对接国产大模型实战指南&#xff08;DeepSeek/Qwen/GLM&#xff09;一、引言二、环境准备2.1 开发环境2.2 模型服务配置 三、核心代码实现3.1 会话代码封装3.2 CurModelContext封装3.3 DeepSeek对接示例3.4 Qwen对接示例3.5 GLM对接示例 四、…

Ai时代,运维人如何转型

在AI时代,传统运维向智能运维(AIOps)的转型需要系统性重塑,以下是深度拆解的转型路线图和关键实施要素: 一、认知升级范式转变 1. 演进路线模型(三阶段) 被动响应阶段:人工巡检(→监控覆盖率<30%)主动防御阶段:规则引擎(→告警准确率70%~85%)预测自治阶段:深…

windows鼠标按键自定义任意设置

因为用惯了Linux的鼠标中键的复制黏贴&#xff0c;发现windows下有完全可以实现类似自定义功能的软件&#xff0c;推荐一下&#xff1a; X Mouse Button Control。 免费版足够好用。 软件简介&#xff1a; X Mouse Button Control是一款专业的重新映射鼠标按钮的软件工具&…

怎么看户型好不好?

看房型好不好可从以下方面判断&#xff1a; 空间布局 方正性&#xff1a;户型方正为佳 &#xff0c;此时进深与开间比例在1:1.5左右。方正户型空间利用率高&#xff0c;无采光死角。如手枪型、锯齿型等异形户型&#xff0c;易有拐角、长过道&#xff0c;空间浪费大。动静分区…

基于WOA鲸鱼优化TCN-BiGRU注意力机制网络模型的时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a/matlab2024b 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频…

JAVA简单走进AI世界~Spring AI

1、背景 现代 AI 正以前所未有的速度改变着世界。它是基于复杂算法和强大计算能力的技术体系,涵盖了机器学习、深度学习、自然语言处理等多个领域。 在日常生活中,AI 广泛应用于智能语音助手、图像识别、推荐系统等。比如,智能音箱能理解并回应语音指令,为人们提供信息查…

stm32wb55rg (4) 启用usart串口

code repo: 访问gitee 上节课成功点亮了LED&#xff0c;这次来把usart 用起来&#xff0c;毕竟有交互才是系统。 技术准备 首先查看手册&#xff0c;发现mcu有1个usart和1个 lpuart。 usart 的使用需要两个pin&#xff0c;一个接收一个发送。继续查看pin and ball definition…

Python生活手册-NumPy数组创建:从快递分拣到智能家居的数据容器

一、快递分拣系统&#xff08;列表/元组转换&#xff09; 1. 快递单号录入&#xff08;np.array()&#xff09; import numpy as np快递单号入库系统 快递单列表 ["SF123", "JD456", "EMS789"] 快递数组 np.array(快递单列表) print(f"…

数据库-数据类型,表的约束和基本查询操作

一、数值类型 1. 整数类型 类型字节有符号范围无符号范围操作注意事项TINYINT1-128 ~ 1270 ~ 255默认有符号&#xff0c;UNSIGNED定义无符号SMALLINT2-32768 ~ 327670 ~ 65535无符号需显式声明INT4-2^31 ~ 2^31-10 ~ 2^32-1推荐优先使用INTBIGINT8-2^63 ~ 2^63-10 ~ 2^64-1存…

【C语言编译】编译原理和详细过程

文章目录 1. C 语言编译原理和详细过程1.1 预处理阶段1.2 编译阶段1.3 汇编阶段1.4 链接阶段 2. 疑问点解析2.1 三地址码是什么&#xff1f;有什么作用2.2 符号表是什么&#xff1f;有何作用2.3 重定位的含义与作用2.3 符号表和重定位在整个编译过程中的作用2.4 动态链接库.so和…

游戏引擎学习第251天:完成调试层级结构

运行游戏&#xff0c;查看当前调试层级的状态。 我们正在直播中开发一个完整的游戏&#xff0c;目前正进行调试代码的整理和清理工作。现在我们直接进入正题&#xff0c;虽然还不完全确定今天要完成哪些具体内容&#xff0c;但有几个明确的目标&#xff1a; 首先&#xff0c;…