题目:"A beautiful girl" -> "girl beautiful a"
思想:先反转整个句子,然后再反转每个单词。
//反转单词,注意参数中有数组的起点和终点,因为是在句子中反转单个单词
public void reverse(char[] chars, int start, int end){
for (int i=start,j=end;i<j;i++,j--){
char t=chars[i];
chars[i]=chars[j];
chars[j]=t;
}
}
//反转单词
public String reverse(String s){
if (s==null || s.length()==0){
return s;
}
char[] chars = s.toCharArray();
reverse(chars,0,chars.length-1);//先反转整个句子
int start=0;
for (int i=0;i<chars.length;i++){//然后再依次反转每个单词
if (chars[i]==' '){
reverse(chars,start,i-1);
start=i+1;
}
}
return new String(chars);
}
网友评论