首页 > 试题广场 >

倒置字符串

[编程题]倒置字符串
  • 热度指数:37249 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I

输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100


输出描述:
依次输出倒置之后的字符串,以空格分割
示例1

输入

I like beijing.

输出

beijing. like I
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        char[] ch = s.toCharArray();
        int len = ch.length;
        //1.整体进行了逆置
        reverse(ch, 0, len - 1);
        int i = 0; //遍历ch数组

        while (i < len) {
            int j = i;
            while (j < len && ch[j] != ' ') {
                j++;
            }

            if (j < len) {
                reverse(ch, i, j - 1);
                i = j + 1;
            } else {
                reverse(ch, i, j - 1);
                i = j;
            }
        }
        String str = new String(ch);
        System.out.println(str);
    }

    public static void reverse(char[] array, int start, int end) {
        while (start < end) {
            char tmp = array[start];
            array[start] = array[end];
            array[end] = tmp;
            start++;
            end--;
        }
    }
}
发表于 2023-12-01 17:23:42 回复(0)
import java.io.*;

public class Main{
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line = null;
        while ((line = br.readLine()) != null){
            String[] arr = line.split(" ");
            for (int i = arr.length -1; i >= 0 ; i--){
                if (i == 0 ){
                    System.out.println(arr[i]);
                }else {
                    System.out.print(arr[i] + " ");
                }
            }
        }
    }
}
发表于 2022-08-13 17:20:14 回复(0)
import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack stack = new Stack();

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {

            String str = scanner.nextLine();

            String [] strArr = str.split(" ");
            for (String s : strArr) {
                stack.push(s);
            }

            for (int i = 0; i < strArr.length; i++) {
                System.out.print(stack.pop() + " ");
            }

        }
    }
}








发表于 2022-05-05 10:05:04 回复(0)
package com.newcode;

import java.util.Scanner;

public class Demo2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String input=null;
        String out=null;
        Scanner sc=new Scanner(System.in);
        input=sc.nextLine();
        String [] result=input.split(" ");
        int i,j;
        j=result.length-1;
        for( i=0;i<=(result.length-1)/2;i++) {
            if(i!=j) {
                String temp=result[i];
                result[i]=result[j];
                result[j]=temp;
                j--;
            }
        }
        out="";
        for(i=0;i<result.length;i++) {
            if(i<result.length-1)out=out+result[i]+" ";
            else {
                out=out+result[i];
            }
        }
        System.out.println(out);
    }

}


发表于 2018-12-12 19:27:16 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        String line = scan.nextLine();
        String[] split = line.split(" ");
        String res="";
        for (int i = split.length-1; i >= 0; i--) {
            res+=split[i]+" ";
        }
        String result = res.trim();
        System.out.println(result);
    }
}
发表于 2018-10-01 20:44:32 回复(0)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String[] aString = bf.readLine().split(" ");
        StringBuffer sBuffer = new StringBuffer();
        for (int i = aString.length - 1; i >= 0; i--) {
            sBuffer.append(aString[i] + " ");

        }
        System.out.println(sBuffer.toString().trim());
    }

}

发表于 2018-09-16 15:44:57 回复(0)
思路:用 String a[] = str.split(" ");然后从后往前输出即可
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            String str = in.nextLine();
            String a[] = str.split(" ");
            for(int i=a.length-1;i>0;i--)
                System.out.print(a[i]+" ");
            System.out.println(a[0]);
        }
    } 
}
发表于 2018-08-26 22:05:38 回复(0)
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        String str = s.nextLine();
        String[] str2 = str.split(" ");
        for(int i = str2.length-1;i>0;i--){
            System.out.print(str2[i]+" ");
        }
        System.out.print(str2[0]);
    }
    
}

发表于 2018-07-30 13:59:12 回复(0)
import java.util.Scanner; public class Main{  public static void main(String[] args) {
        String[] str = new Scanner(System.in).nextLine().split(" "); for(int i=0;i<str.length;i++){
        System.out.print(str[str.length-1-i]+" ");
    }
    }
}
这个在Idea上可以出来,到了这儿怎么不行了呢???

发表于 2018-06-27 17:39:35 回复(0)
import java.util.Scanner;

public class DaoZhi {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] ss = sc.nextLine().split(" ");
        for (int i =ss.length-1 ; i > -1; i--) {
            System.out.print(ss[i]);
            if(i!=0) {
                System.out.print(" ");
            }
        }
    }

}

发表于 2018-05-09 08:53:50 回复(0)

1、思路其实很简单,首先把字符串按空格符分隔成数组,数组按倒序输出,拼接字符串+空格

import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = null;
        String result = "";
        while((input =  br.readLine()) != null){
            String[] arr = input.split(" ");
            for(int i = arr.length-1; i >=0; i--){
                result += arr[i];
                if(i != 0){
                    result += " ";
                }
            }
            System.out.println(result);
        }
    }
}
编辑于 2018-03-24 22:56:50 回复(0)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
    
    
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String st = br.readLine();
        String[] str = st.trim().split(" ");
        for (int i=str.length-1;i>0;i--) {
            System.out.print(str[i]+" ");
        }
        System.out.print(str[0]);

    }
}

发表于 2018-03-04 12:59:28 回复(0)
import java.util.*;
public class Main{
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        String[] string = str.split(" ");
        for(int i=0;i<string.length;i++){
            System.out.print(string[string.length-i-1]);
            if(i!=string.length-1){
                System.out.print(" ");
            }
        }
    }
}

发表于 2018-01-01 13:37:59 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String string = in.nextLine();
            String[] strings = string.split("\\s");
            for (int i = strings.length - 1; i >= 0; i--) {
                if (i > 0) System.out.print(strings[i] + " ");
                else System.out.println(strings[i]);
            }
        }
    }
}

发表于 2017-12-25 22:19:25 回复(0)
import java.util.Scanner;  public class Main
{ public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);  while (scanner.hasNext()) {
            String[] strings = scanner.nextLine().split(" ");  StringBuffer sb = new StringBuffer();  for (int i = strings.length - 1; i > 0; i--) {
                sb.append(strings[i]);  sb.append(" ");  }
            sb.append(strings[0]);  System.out.println(sb.toString());  }
    }
}
这道题完全就是一道字符串倒置的题目,就是用split分成string数组,用StringBuffer倒置一下就可以了
发表于 2017-11-28 21:19:50 回复(0)
 import java.util.Scanner;

/**
 * @author AmVilCres
 * @desc 
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        sc.close();
        String[] strArr = str.split(" +");
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<strArr.length; i++) {
            strArr[i] = sb.append(strArr[i]).reverse().toString();
            sb = new StringBuilder();
        }
        
        for(int i=0; i<strArr.length; i++) {
            sb.append(strArr[i]+" ");
        }        
        System.out.println(sb.reverse().toString().trim());
    }
}


发表于 2017-11-02 14:37:13 回复(0)
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        
        String data = scanner.nextLine();
        
        String[] strs = data.split(" ");
        
        for(int i = strs.length - 1; i >= 0; i--)
        {
            if(i != 0)
            {
                System.out.print(strs[i] + " ");
            }
            else
            {
                System.out.print(strs[i]);
            }
        }
        
        scanner.close();
    }
}

发表于 2017-09-16 18:51:04 回复(0)
import java.util.*;
public class Main
    {
    public static void main(String[] args)
        {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext())
            {
            String s =sc.nextLine();
            String []str= s.split(" ");
             int len =str.length;
             for(int i=0;i<len/2;i++)
             {
             swap(str,i,len-1-i);
         }
         for(int i=0;i<len-1;i++)
             {
             System.out.print(str[i]+" ");
         }
         System.out.print(str[len-1]); 
     }
    }
    public static void swap(String str[],int i,int j)
        {
        String t =str[i];
        str[i]=str[j];
        str[j]=t;
    }
}

发表于 2017-09-02 16:21:33 回复(0)
public class Main{
    
    //先对整个字符串翻转,记为s1,然后对s2以空格分割为字符串数组s2,
    //分别对字符串数组s2中的每个字符串再翻转,即可。
    public static void main(String[] args){
        
        Scanner in  = new Scanner(System.in);
        String s = in.nextLine();

        String s1 = reverse(s);
        String[] s2 = s1.split(" ");
        StringBuilder res = new StringBuilder();
        for(int i=0; i<s2.length; ++i){
            String s3 = reverse(s2[i]);
            res.append(s3);
            res.append(" ");
        }
        res.deleteCharAt(res.length()-1);
        System.out.println(res.toString());


    }

    //翻转字符串函数
    public static String reverse(String s){
        char [] c = s.toCharArray();
        int len = c.length;
        for(int i=0; i<= (len/2)-1; ++i){
            char temp = c[i];
            c[i] = c[len-1-i];
            c[len-i-1] = temp;
        }
        StringBuilder sb = new StringBuilder();
        for(int i=0; i<c.length; ++i){
            sb.append(c[i]);
        }
        return sb.toString();
    }
}

发表于 2017-08-27 10:43:43 回复(0)