尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

reverse和substr用法

reverse和substr用法
📅 发布时间:2026/7/5 1:13:12

131. 分割回文串 - 力扣(LeetCode)

std::string对象本身不能直接加上整数来当做地址使用。

在 C++ 中,std::reverse需要传入的是迭代器(Iterator),而不是简单的字符串对象加偏移量。

以下是具体的错误分析以及两种修复方案:

方案一:修复你现有的逻辑(利用迭代器)

要获取string的迭代器,需要使用.begin()。另外需要注意的是,C++ 标准库算法(如reverse)操作的区间通常是左闭右开[first, last)的。

如果你的end是子串的最后一个字符的下标(即包含在内),你需要写成tmp.begin() + end + 1。

C++

#include <string> #include <algorithm> using namespace std; bool hui(string s, int start, int end) { string tmp = s; // 使用 .begin() 获取迭代器,并注意 C++ 是左闭右开区间 reverse(tmp.begin() + start, tmp.begin() + end + 1); return s == tmp; }

方案二:更优的标准做法(双指针法)

虽然方案一可以跑通,但在算法设计中,我们通常不推荐用这种方式来判断回文。

原因:

  1. 每次调用函数都要复制整个字符串string tmp = s;,浪费空间。

  2. 即使子串很短(例如长度为 3),最后依然要通过s == tmp比较整个母串,浪费时间。

更高效的做法是使用“双指针”:从两端向中间逼近,只检查需要的那个子串,时间复杂度降低到 $O(N)$,空间复杂度降低到 $O(1)$。

C++

#include <string> using namespace std; // 建议将参数改为 const string&,避免不必要的字符串拷贝 bool hui(const string& s, int start, int end) { while (start < end) { if (s[start] != s[end]) { return false; // 只要有一处不匹配,就不是回文 } start++; end--; } return true; // 全部匹配,是回文 }

总结:

如果你只是想修好当前的语法错误,把tmp + start改为tmp.begin() + start即可;如果你是在刷算法题(比如最长回文子串、回文分割等),强烈建议使用方案二的双指针法,这可以帮你避免因超时而导致的代码不通过。

  • substr(start, len)可以从字符串的start(从0开始)截取一个长度为len的字符串(缺省len时代码截取到字符串末尾).

相关新闻

  • 鸿蒙应用安全认证实战:基于HUKS密钥库的签名验签方案详解
  • LangGraph add_conditional_edges 完整详解
  • 实战指南:快速掌握ForgeGradle的完整构建流程

最新新闻

  • 由罗技 K380 键盘 FN 键模式切换引发的血案
  • 桌面AI Agent从原理到实践:以“昔涟”为例解析LLM与操作系统协同
  • 基于 superpowers 实现复杂前端改造
  • DataEase高危漏洞复现:从H2数据库注入到RCE攻击链深度解析
  • COLMAP 3.9 实战:无人机航拍图像三维重建,从 500 张图到稠密点云全流程
  • 基于51/STM32单片机分贝仪检测 噪音等级声音采集电子成品套件21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

日新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号