You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode反转字符串中的单词:代码第10行reverse语句作用解析

解释reverse(s.begin()+j, s.begin()+i);的功能

这行代码的核心作用是将字符串中从索引j到i-1的子串进行反转,是整个「反转字符串中的单词」算法的关键步骤,结合上下文逻辑来看:

  • 算法第一步已经把整个输入字符串s完全反转,这会让原本的每个单词自身也被颠倒(比如原字符串是"hello world",整体反转后变成"dlrow olleh")。
  • 变量j记录着当前待处理单词的起始索引,i是当前找到的空格位置——也就是说,s[j..i-1]这段子串是被整体反转弄颠倒的单个单词。
  • 调用reverse反转这段子串,就能把这个单词恢复成原本的正确顺序(比如"dlrow"会被反转回"world","olleh"反转回"hello")。
  • 反转完成后,j会被更新为i+1,指向下一个单词的起始位置,等待下一次遇到空格时重复操作。

举个实际例子:假设整体反转后的字符串是"dlrow olleh "(代码里额外追加了一个空格),当i走到第5位的空格时,j为0,此时反转0到5的子串"dlrow",得到"world";之后j更新为6,当i走到第11位的空格时,反转6到11的子串"olleh",得到"hello",最终处理后的字符串就是"world hello"。

内容的提问来源于stack exchange,提问作者Utkarsh Dubey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 13:34:52