//逆置字符串
//题目描述
//I like beijing.
//beijing. like I
//-
//解题思路
//不能使用String,要使用char[];
//先将整个字符数组逆置,再根据空格,对每个单词进行逆置
//使用双指针-前后指针
import java.util.*;
public class Main {
public static void reverse(char[] array,int left,int right){
while(left<right){
char tmp=array[left];
array[left]=array[right];
array[right]=tmp;
left++;
right--;
}
}
public static void main(String[] args){
//处理输入
Scanner sc=new Scanner(System.in);
String str1=sc.nextLine();
char[] array=str1.toCharArray();//string->char[]
int len=array.length;
//先逆置整个字符数组
reverse(array,0,len-1);
//根据空格,使用双指针对每个单词进行逆置
int i=0;
while(i<len){
//找到一个单词
int j=i;
while(j<len&&array[j]!=' '){
j++;
}
//对单词进行逆置
if(j<len){
reverse(array,i,j-1);//不能提出去
i=j+1;
}else{
reverse(array,i,j-1);
i=j;
}
}
//处理输出
String str2=new String(array);//char[]->string
System.out.println(str2);
}
}
03-05
397
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-09
78
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-06
155
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)