题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
示例1
输入
"nowcoder. a am I"
返回值
"I am a nowcoder."
代码设计:
public class Solution {
public String ReverseSentence(String str) {
int l=str.length();
if(str==null||l==0)
return "";
String s="";
// for(int i=l-1;i>=0;i--)
// s+=str.charAt(i);//完全反转了 看空格判断
l=l-1;//下标
while(l>=0){
char []array=new char[100];
int len=0;
for(int i=l;l>=0&&str.charAt(i)!=' ';i--){
l--;
array[len++]=str.charAt(i);
}
for(int i=len-1;i>=0;i--)//翻转单词了
s+=array[i];
if(l>0){//去掉空格 可能存在多个空格
for(int i=l;l>=0&&str.charAt(i)==' ';i--,l--)
//l>=0放在前面 否则可能出现下标越界
s+=str.charAt(i);//字符串加上空格
}
}
return s;
}
}
遇见的问题:
字符串反转:自己用数组实现的,不采用StringBuffer的reverse函数