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

算法训练营第十五天|344. 反转字符串

今日练习的题目和链接

  • 建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数
  • 题目链接:https://leetcode.cn/problems/reverse-string/
  • 视频链接:https://www.bilibili.com/video/BV1fV4y17748

初步思考

如果抛开“考察原理”这层限制,C++ 程序员一行代码就能搞定:

reverse(s.begin(), s.end());

但这道题的目的,恰恰就是让你实现reverse的原理。所以直接调库,就失去了练习的意义。


深度思考:什么时候用库函数?

这是一个经验问题,我总结了一个简单原则:

✅ 可以用库函数的情况

  1. 题目本身不考察该函数的实现

    • 比如:两数之和,你用unordered_map没问题,因为题目考的是哈希表思想,不是让你实现哈希表

    • 比如:需要排序,你用sort没问题,排序不是题目的核心考点

  2. 库函数只是辅助工具,不掩盖核心逻辑

    • 比如:需要交换两个数,用swap没问题

❌ 不该用库函数的情况

  1. 题目明确要求手动实现

    • 比如这道题,就是让你实现reverse

    • 比如实现strcpyatoi等函数

  2. 库函数会直接给出答案

    • 比如反转字符串你直接调reverse,那这道题你还练了什么?

一句话原则

如果库函数本身就是这道题的考点,就不要调;如果库函数只是解题的辅助工具,大胆用。

实现(双指针法)

class Solution { public: void reverseString(vector<char>& s) { int left = 0; int right = s.size() - 1; while (left < right) { // 手写交换,也可以用 swap(s[left], s[right]) char temp = s[left]; s[left] = s[right]; s[right] = temp; left++; right--; } } };

几种交换方式的对比

方法代码可读性推荐度
临时变量char temp = a; a = b; b = temp;⭐⭐⭐⭐⭐最推荐
swap 函数swap(a, b);⭐⭐⭐⭐⭐推荐(C++ 内置)
异或运算a ^= b; b ^= a; a ^= b;⭐⭐不推荐(可读性差)

总结

场景做法原因
这道题手动实现双指针题目考的就是反转原理
日常开发直接用reverse稳定、高效、不用重复造轮子
面试中先问清楚“我可以直接用 reverse 吗?”
http://www.cnnetsun.cn/news/2125185.html

相关文章:

  • 高速驱动AI提效 金士顿固态硬盘破解存储瓶颈
  • 从技术到创业:那些成功者不会公开说的关键决策
  • 探索编程异端思想:从AST操作到元编程的工程实践启示
  • AISG协议与MAX9947在基站通信中的集成应用
  • Pixel Script Temple 企业级应用:基于大模型的智能客服对话逻辑生成
  • 大型语言模型评估中的偏见挑战与改进策略
  • 从零构建高性能技术博客:Hugo、GitHub Actions与SEO实战指南
  • 5种方法实现Amlogic电视盒子Armbian刷机:从Android到Linux服务器的终极指南
  • NCM文件解密终极指南:免费工具快速解锁网易云音乐加密格式
  • AI Agent详解:从概念到实践,一文读懂智能体
  • 注意力机制在LLM推理中的核心作用与优化策略
  • 深度解析:大语言模型 (LLM) Agent 的架构与演进趋势
  • 文件上传漏洞实验1(PortSwigger_Labs)
  • 梯度下降算法解析:原理、实现与优化策略
  • 【高标准农田】面向农业病虫害识别的田间实时感知高质量图像数据集建设方案:总体架构与技术路线、田间实时感知与数据采集子系统...
  • Nintendo Switch游戏安装新选择:Awoo Installer 3大核心优势解析
  • 英文论文AI率高达95%怎么救?实测5款降AIGC工具,这3个手改技巧稳降至0%
  • OpenClaw AI代理权限审计:静态分析工具的设计与CI/CD集成实践
  • 《静夜思》
  • 国产化替代倒计时!C语言项目编译器适配最后窗口期:仅剩117天完成信创验收——这份含137个预编译宏映射表与32个头文件兼容补丁的终极适配工具箱,限首批200名开发者领取
  • 【实践】Monorepo 从0到1搭建最小可用 Vue Monorepo
  • Real Anime Z实战落地:高校数字媒体课程中用于二次元风格教学与创作实训
  • 安卓应用版本自由:APKMirror终极指南帮你找回安装自主权
  • AI Agent在量化交易中的策略优化
  • CUDA Agent:基于强化学习的GPU内核优化系统
  • 4位量化技术:INT4与FP4的对比与应用指南
  • 国产替代崛起,白酒崩!
  • 搞懂Silvaco仿真里的‘玄学’坐标:线性vs对数图到底怎么看?以PIN二极管电场分布为例
  • 别再一个个找了!用Toolify.ai这个AI工具导航站,9600+工具按场景分类,5分钟找到你的生产力神器
  • DeepSeek V4 突然发布,DeepSeek-V4 技术报告深度解读