力扣题151反转字符串里的单词
发布日期:2022-03-04 11:48:25 浏览次数:11 分类:技术文章

本文共 1276 字,大约阅读时间需要 4 分钟。

给你一个字符串 s ,逐个翻转字符串中的所有 单词 。

单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。

请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。

说明:

输入字符串 s 可以在前面、后面或者单词间包含多余的空格。

翻转后单词间应当仅用一个空格分隔。
翻转后的字符串中不应包含额外的空格。
 

示例 1:

输入:s = "the sky is blue"

输出:"blue is sky the"
示例 2:

输入:s = "  hello world  "

输出:"world hello"
解释:输入字符串可以在前面或者后面包含多余的空格,但是翻转后的字符不能包括。
示例 3:

输入:s = "a good   example"

输出:"example good a"
解释:如果两个单词间有多余的空格,将翻转后单词间的空格减少到只含一个。
示例 4:

输入:s = "  Bob    Loves  Alice   "

输出:"Alice Loves Bob"
示例 5:

输入:s = "Alice does not even like bob"

输出:"bob like even not does Alice"

1.记录一下自己的解法:从后往前遍历字符串,遇到空格就跳过,遇到字符就遍历完整个这个字符所在的单词,然后加入StringBuilder中。

class Solution {    public String reverseWords(String s) {        StringBuilder str = new StringBuilder();        int end = s.length() - 1;        //从后往前遍历        while (end >= 0) {            if (s.charAt(end) == ' ') {//遇到空格,直接跳过                end--;                continue;            }            int start = end;            //遇到非空格,就把这个字符属于的单词遍历出来            while (start >= 0 && s.charAt(start) != ' ') {                start--;            }            str.append(s.substring(start + 1,end + 1));            str.append(" ");//每个单词结束后加一个空格            end = start - 1;        }        //注意要删除最后一个单词加的空格        return str.deleteCharAt(str.length() - 1).toString();    }}

题源:

转载地址:https://blog.csdn.net/xxyneymar/article/details/122655984 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:爬虫学习总结
下一篇:SpringBoot入门(八)异常处理/Servlet组件注入/定制化

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月16日 13时06分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

基于SnowFlake算法如何让分库分表中不同的ID落在同一个库的算法的实现 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分库解决方案(二) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之分表解决方案(一) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之关联查询解决方案(三) 2019-04-27
基于springboot的ShardingSphere5.X的分库分表的解决方案之基于seata的分布式事务的解决方案(十五) 2019-04-27
Linux文件管理参考 2019-04-27
FTP文件管理项目(本地云)项目日报(一) 2019-04-27
FTP文件管理项目(本地云)项目日报(二) 2019-04-27
FTP文件管理项目(本地云)项目日报(三) 2019-04-27
FTP文件管理项目(本地云)项目日报(四) 2019-04-27
【C++】勉强能看的线程池详解 2019-04-27
FTP文件管理项目(本地云)项目日报(五) 2019-04-27
FTP文件管理项目(本地云)项目日报(关于不定长包的测试) 2019-04-27
FTP文件管理项目(本地云)项目日报(六) 2019-04-27
FTP文件管理项目(本地云)项目日报(七) 2019-04-27
FTP文件管理项目(本地云)项目日报(八) 2019-04-27
【Linux】血泪教训 -- 动态链接库配置方法 2019-04-27
FTP文件管理项目(本地云)项目日报(九) 2019-04-27
以练代学设计模式 -- FTP文件管理项目 2019-04-27
FTP文件管理项目(本地云)项目日报(十) 2019-04-27