翻转字符串里的单词

此博客链接:

翻转字符串里的单词

题目链接:https://leetcode-cn.com/leetbook/read/array-and-string/crmp5/

题目

给你一个字符串 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 <= s.length <= 104
s 包含英文大小写字母、数字和空格 ' '
s 中 至少存在一个 单词

题解

使用空格,先把字符串转成字符串数组,对数组进行翻转,使用一个临时变量,以字符串数组中间为轴,把字符串数组进行翻转。

代码

class Solution {
    public String reverseWords(String s) {
        String t=s.trim();
    String str[]=t.split(" ");
    int len=str.length;
    //System.out.println(len);
    for(int i=0;i<len/2;i++){
        if(str[i]!=" "){
        String temp=str[i];
       str[i]= str[len-i-1];
       str[len-i-1]=temp;
        }
        
    }
    String res="";
    for(int i=0;i<len-1;i++){
       res+=str[i]+" ";
    }
    res+=str[len-1];
    return res;
    }
}

 

结果

多空格没有处理。

 

posted @ 2021-06-23 15:09  萍2樱释  阅读(55)  评论(0编辑  收藏  举报