2.2-OR62 倒置字符串

倒置字符串_牛客题霸_牛客网 (nowcoder.com)


//逆置字符串
//题目描述
//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);
    }    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值