zoukankan      html  css  js  c++  java
  • 翻转字符串里的单词

    此博客链接:

    翻转字符串里的单词

    题目链接: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;
        }
    }

    结果

    多空格没有处理。

    出来混总是要还的
  • 相关阅读:
    Java速成笔记
    C语言学习笔记
    形式语义05 Semantics
    密码学04 PRG&PRF
    形式语义04 Types
    密码学03 Computational
    形式语义03 Lambda
    密码学02 Perfect
    形式语义01 Intro
    密码学01 Intro
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/14922826.html
Copyright © 2011-2022 走看看