力扣题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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月16日 13时06分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于SnowFlake算法如何让分库分表中不同的ID落在同一个库的算法的实现
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