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

反转字符串2

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.xdnf.cn/news/4053.html

相关文章:

  • 杰理-JL701-充电开机,芯片不进入休眠
  • Spring Boot 中 @Bean 注解详解:从入门到实践
  • 无人机 | 无人机设计概述
  • Springclound常用五大组件及其使用原理
  • 防止交叉验证中的数据泄露:提升模型在实际环境中的性能
  • 怎样获得真实带宽之宽带升级后
  • 014枚举之指针尺取——算法备赛
  • C++类与对象深度解析:从基础到应用
  • kotlin 01flow-StateFlow 完整教程
  • Python-numpy中ndarray对象创建,数据类型,基本属性
  • 【免费分享无广告】刷视频助手抖音快手小红书视频号自动脚本刷视频养号
  • 前端面试每日三题 - Day 25
  • Netty的内存池机制怎样设计的?
  • 专业化婴幼儿托育服务与管理实训室建设方案
  • Easy云盘总结篇-回收站
  • 组合两个表 --- MySQL [Leetcode 题目详解]
  • 备战全国信息素养大赛 图形化挑战赛——约数和
  • “公共类 XXX 应该在文件中出现”错误怎么查找解决
  • 项目管理学习-CSPM(1)
  • MCP与API集成的最佳实践:高效连接,智能驱动
  • 谈判模拟器 - Gemini 2.5 商业优化版
  • JGQ626Ⅲ数据采集旋风除尘与袋式除尘组合实验装置
  • 【漫话机器学习系列】241.典型丢弃概率(Typical Dropout Probabilities)
  • EF Core 中,AsEnumerable 和 AsQueryable 的区别
  • 算法题(139):牛可乐和魔法封印
  • BUUCTF——Mark loves cat
  • 在Window10 和 Ubuntu 24.04LTS 上 Ollama 在线或离线安装部署
  • 嵌入式操作系统
  • 剥开 MP4 的 千层 “数字洋葱”:从外到内拆解通用媒体容器的核心
  • Vue3从入门到精通