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

C++基础(③反转字符串(字符串 + 双指针))

题目描述:编写一个函数,将输入的字符串反转过来(要求原地修改字符串,不使用额外空间)。
示例:输入 s = ["h","e","l","l","o"] → 输出 ["o","l","l","e","h"]。
思路提示:

用两个指针分别指向字符串的开头(left=0)和结尾(right = s.size()-1),交换两个指针指向的字符,然后 left++、right--,直到 left >= right。
注意:C++ 中字符串是可变的,直接通过下标修改即可。

代码

#include <iostream>
#include <vector>using namespace std;// 原地反转字符串
void reverseString(vector<char>& s) {int left = 0;int right = static_cast<int>(s.size()) - 1;while (left < right) {swap(s[left], s[right]);++left;--right;}
}// 测试
int main() {vector<char> s = {'h', 'e', 'l', 'l', 'o'};reverseString(s);for (char c : s) cout << c << ' ';return 0;
}

swap 帮你交换,static_cast 安全转型,vector 是动态数组,& 避免拷贝,范围 for 让遍历写法极简。

http://www.dtcms.com/a/357528.html

相关文章:

  • solidity地址、智能合约、交易概念
  • Pointer--Learing MOOC-C语言第九周指针
  • 鸿蒙地址选择库(ArkTs UI)
  • Idea2025.2 MybatisX插件失效问题
  • Suno-API - OpenI
  • 【计算机网络】前端基础知识Cookie、localStorage、sessionStorage 以及 Token
  • 04.《VLAN基础与配置实践指南》
  • 掌握 Linux 文件权限:chown 命令深度解析与实践
  • css绘制三角形
  • 软件开发准则
  • 隧道搭建技术
  • 零成本解锁 Cursor Pro:虚拟卡白嫖1个月+14天试用全攻略
  • 鬼泣:索定系统
  • 基于能量方法的纳维-斯托克斯方程高阶范数有界性理论推导-陈墨仙
  • Java接口和抽象类的区别,并举例说明
  • Coze智能体小练习-根据主题生成小红书宣传图片
  • (十一)ps识别: epoch 训练日志解析
  • 国务院提出“人工智能+”行动,容智智能体引领产业变革发展
  • Java 学习笔记(基础篇11)
  • SyncBack 安全备份: 加密文件名及文件内容, 防止黑客及未授权的访问
  • 三维动画渲染农场哪家便宜?
  • Redis开发06:使用stackexchange.redis库结合WebAPI对redis进行增删改查
  • vue在函数内部调用onMounted
  • 论文阅读:arixv 2025 WideSearch: Benchmarking Agentic Broad Info-Seeking
  • Linux之Shell编程(二)
  • 零售行业全渠道应如何与零售后端系统集成?
  • JavaScript 知识篇(1):解构赋值
  • 【前端教程】二维数组排序实战:按需封装才是最优解——拒绝冗余,精简代码
  • 基于SpringBoot和百度人脸识别API开发的保安门禁系统
  • MinIO社区版“背刺“之后:RustFS用Apache 2.0协议重构开源信任