力扣151--反转字符串中的单词(优)

清晰易懂,简单高效!

大体思路:

每次截取到想要的单词,拼接到新的sb中,过程中伴随双指针进行空格位置指向控制,

其中如果start指针如果==0的情况要放在第一个判断条件防止边界条件失效,并且这种情况下截取的是最后一个单词,此时不需要加额外空格。

java 复制代码
class Solution {
    public String reverseWords(String s) {
        s = s.trim();
        StringBuilder sb = new StringBuilder();
        int end = s.length() - 1;
        int start = end;
        while(start >= 0){
                  //这里分四种情况来决定每次截取新的字符串位置
            if(start == 0) {
                sb.append(s.substring(start, end + 1));
                start--;
            } else if(s.charAt(start) !=' ') {
                start--;
            } else if(s.charAt(start) == ' '){
                sb.append(s.substring(start + 1, end + 1) + " ");
                while(start >=0 && s.charAt(start) == ' ')
                    start--;
                end = start;
            }  else
                start--;
        }
        return sb.toString();
    }
}
相关推荐
冷小鱼9 分钟前
AI Agent的核心算法:自主学习与反思(Self-Reflection / Critique)
人工智能·学习·算法·自主学习·self-reflection·critique·反思
:-)10 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
Jerry13 小时前
LeetCode 101. 对称二叉树
算法
可编程芯片开发15 小时前
基于MPPT最大功率跟踪的离网光伏发电系统Simulink建模与仿真
算法
AI科技星15 小时前
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲
线性代数·算法·矩阵·数据挖掘·回归·乖乖数学·全域数学
米罗篮15 小时前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)
c++·线性代数·算法·矩阵
dream_home840715 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
大鱼>16 小时前
多宠物家庭智能管理平台:云端架构与多设备协同实战
python·算法·iot·宠物
To_OC16 小时前
LC 22 括号生成:刷完这道题,我终于搞懂回溯剪枝了
javascript·算法·leetcode
To_OC16 小时前
LC 39 组合总和:回溯入门必刷题,我踩过的两个坑都在这了
javascript·算法·leetcode