翻转单词序列

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?

解题:以空格为分隔符赋值给临时字符串数组,之后再倒序赋值

class Solution {
public:
    string ReverseSentence(string str) {
      string s[100]={""};
      int top=0;  
      for(int i=0;i<str.size();i++){
       if(str[i]!=' '){//注意不能写成str[i]!="";否则编译错误
           s[top]+=str[i];
       }
       else{
           top++;
       } 
      }
      str="";
      for(int i=top;i>=0;i--)
      {
          if(i==0){
              str+=s[i];
          }
          else{
              str+=s[i];
              str+=" ";              
          }
      }return str;
    }
};

 java代码:

class Solution {
    public String reverseWords(String s) {
    String []strs = s.trim().split(" +");
    StringBuilder res=new StringBuilder("");
    for(int i=strs.length-1;i>=0;i--){
        res.append(strs[i]);
        if(i!=0)  res.append(" ");
    }
    return res.toString();
    }
}
不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/11240353.html