题目描述:给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String s="";
while(sc.hasNext()){
s=sc.nextLine();
//先从头到尾反转一次
char[] c=f(s.toCharArray(),0,s.length()-1);
int start=0;
int end=0;
// 每个单词内部再反转一次
while(end<c.length){
while(end<c.length && c[end]!=' ')
end++;
c=f(c,start,end-1);
start=end+1;
end=start;
}
for(int i=0;i<c.length;i++)
System.out.print(c[i]);
System.out.println();
}
}
public static char[] f(char[] c,int start,int end){
int i=start;
int j=end;
while(i<j){
char temp=c[i];
c[i]=c[j];
c[j]=temp;
i++;
j--;
}
return c;
}
}