题目如下:
分析:反转整个句子,然后以空格为标志,反转每个单词即可
代码如下:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String sen = sc.nextLine();
System.out.println(reverse(sen));
}
public static String reverse(String sentence){
char[] a = sentence.toCharArray();
exchange(a,0,a.length-1);
int flag=0;
for(int i =0;i<a.length;i++){
if(a[i]==' '){
exchange(a,flag,i-1);
flag = i+1;
}
if(i==a.length-1){
exchange(a,flag,i);
}
}
return new String(a);
}
public static void exchange(char[] a,int begin,int end){
while(end>begin){
char temp = a[end];
a[end]=a[begin];
a[begin] = temp;
begin++;
end--;
}
}
}
注意,最后一个单词的反转要单独处理。