【剑指OFFER】58 - I. 翻转单词顺序
发布日期:2021-06-29 19:47:03 浏览次数:3 分类:技术文章

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

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。

示例 1:

输入: “the sky is blue”

输出: “blue is sky the”

示例 2:

输入: " hello world! "

输出: “world! hello”
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:

输入: “a good example”

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

说明:

无空格字符构成一个单词。

输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

答案

class Solution {
public String reverseWords(String s) {
s = s.trim(); StringBuffer str1 = new StringBuffer(); StringBuffer str = new StringBuffer(); for(int i = s.length() - 1; i >= 0; i--){
if(s.charAt(i) != ' ') {
str1.append(s.charAt(i)); if(i == 0) {
str1.reverse(); str.append(str1); } } else if(s.charAt(i + 1) == ' ') continue; else if(i != 0){
str1.reverse(); str.append(str1); str.append(" "); str1 = new StringBuffer(); } } return str.toString().trim(); }}

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

上一篇:【力扣】154. 寻找旋转排序数组中的最小值 II
下一篇:【剑指OFFER】57 - II. 和为s的连续正数序列

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月23日 21时17分13秒