题目描述
牛客最近来了一个新员工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(); } }