首页 > 试题广场 >

句子逆序

[编程题]句子逆序
  • 热度指数:535264 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的若干个单词组成的句子,每个单词均由大小写字母混合构成,单词间使用单个空格分隔。输出以单词为单位逆序排放的结果,即仅逆序单词间的相对顺序,不改变单词内部的字母顺序。

输入描述:
\hspace{15pt}在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。
\hspace{15pt}除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过 10^3


输出描述:
\hspace{15pt}在一行上输出一个句子,代表以单词为单位逆序排放的结果。
示例1

输入

Nowcoder Hello

输出

Hello Nowcoder
示例2

输入

A b C d

输出

d C b A
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Deque<String> qu = new ArrayDeque<>();
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            qu.push(in.next());  
        }
        while(!qu.isEmpty()){
            System.out.print(qu.pop() + " ");
        }
       
    }
}

思路:出栈入栈

发表于 2025-07-11 22:18:53 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String res = "";
        while (in.hasNext()) { 
            res = in.next() + " " + res;
        }
        System.out.println(res);
    }
}

发表于 2025-07-06 13:43:26 回复(1)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别

        String target = in.nextLine();
        //定义一个String数组用来接收目标字符串被空格分隔后字符串数组
        String[] str = target.split(" ");

        //逆序
        String[] str1 = new String[str.length];
        int index = 0;
        for (int i = str.length - 1; i >= 0 ; i--) {
            str1[index] = str[i];
            index = index + 1;
        }

        //用StrungBuilder类完成空格拼接
        StringBuilder build = new StringBuilder();
        for (int i = 0; i < str1.length ; i++) {
            build.append(str1[i]);
            build.append(" ");
        }

        String result = build.toString();
        System.out.println(result);
    }
}

发表于 2025-05-17 19:25:08 回复(0)
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            String[] strArr = str.split(" ");
            for (int i = strArr.length - 1; i >= 0; i--) {
                System.out.print(strArr[i] + " ");
            }
        }
    }
}
发表于 2025-02-23 00:18:22 回复(0)
public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = in.nextLine();
        String[] s = str.split(" ");
        String flag = "";
        for(int i = s.length;i > 0;i--){
            if(flag.isEmpty()){
                flag += s[i-1];
            }else{
                flag += (" "+s[i-1]);
            }
        }
        System.out.println(flag);
    }
发表于 2025-02-05 17:36:42 回复(0)
import java.util.Scanner;

public class Main {

	public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()) {
        	String line = in.nextLine();
        	String lines[] = line.split(" ");
        	String string = "";
            for(int i = lines.length -1; i >= 0; i--){
                string += lines[i] + " ";
            }
            System.out.println(string.trim());
            
        }
        in.close();
    }
}

发表于 2024-09-24 09:31:30 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        String[] StringArr = str.split(" ");
        int length = StringArr.length;
        for (int i = 0; i < length ; i++ ) {
            System.out.print(StringArr[length - i - 1] + " ");
        }
    }
}

发表于 2024-09-12 22:03:22 回复(0)
首先采用split分割句子为数组,再逆序拼接数组元素。
import java.util.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        String string = sc.nextLine();
        String[] split = string.split(" ");
        for (int i = split.length - 1; i >= 0; i--) {
            sb.append(split[i]);
            if(i != 0){
                sb.append(" ");
            }
        }
        System.out.println(sb.toString());
    }
}


发表于 2024-09-12 18:10:26 回复(1)
public class InverseWords {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String str = input.nextLine();
        String[] strArray = str.split("\\s+");
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = strArray.length - 1; i >= 0; i--) {
            stringBuilder.append(strArray[i]);
            stringBuilder.append(" ");
        }
        System.out.println(stringBuilder);
    }

}

发表于 2024-09-05 18:03:09 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str=in.nextLine();
            // 数组的方法
            String[] arr=str.split(" ");
            for(int i=arr.length-1;i>=0;i--){
                if(i==0){
                    System.out.print(arr[i]);
                }else{
                    System.out.print(arr[i]+" ");
                }
            }
            // 这是用sb容器截取的方法
            // StringBuilder sb=new StringBuilder();
            // int count=0;
            // for(int i=0;i<str.length();i++){
            //     char c=str.charAt(i);
            //     if(Character.isSpace(c)){
            //         String s=str.substring(count,i);
            //         sb=sb.insert(0,s);
            //         sb.insert(0," ");
            //         count=i+1;
            //     }
            // }
            // System.out.print(sb.insert(0,str.substring(count))); 
        }
    }
}


发表于 2024-08-18 23:15:49 回复(0)
public class Main {
    public static String reverseWords(String input) {
        char[] array = input.toCharArray();
        reverse(array, 0, array.length - 1);
        int start = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] != ' ' && (i == 0 || array[i - 1] == ' ')) {
                start = i;
            }
            if (array[i] != ' ' && (i == array.length - 1 || array[i + 1] == ' ')) {
                reverse(array, start, i);
            }
        }
        return new String(array); //O(n)
    }

    public static void reverse(char[] array, int l, int r) {
        while (l < r) {
            char temp = array[l];
            array[l] = array[r];
            array[r] = temp;
            l++;
            r--;
        } //O(n)
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        System.out.println(reverseWords(input));
    }
}
发表于 2024-08-11 21:23:45 回复(0)

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str1 = in.nextLine();
        String[] str2 =str1.split(" ");
        for(int i=str2.length-1;i>=0;i--){
            System.out.print(str2[i]+" ");
        }
    }
}

发表于 2024-07-28 13:31:10 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String[] words = scanner.nextLine().split(" ");
            StringBuilder sb = new StringBuilder();
            for (int i = words.length - 1; i >= 0; i--) {
                sb.append(words[i] + " ");
            }
            System.out.println(sb);
        }
    }
}

发表于 2024-07-03 18:01:53 回复(0)
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    // 注意 hasNext 和 hasNextLine 的区别
    while (in.hasNextLine()) { // 注意 while 处理多个 case
        String a = in.nextLine();
        String[] arr = a.split(" ");
        for (int i = arr.length - 1; i >= 0; i--) {
            System.out.print(arr[i]);
            if (i > 0) {
                System.out.print(" ");
            }
        }
    }
}

发表于 2024-05-06 07:42:06 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] input = in.nextLine().split(" ");
        for(int i=input.length-1;i>=0;i--) {
            System.out.print(input[i]+" ");
        }
    }
}

发表于 2024-04-24 10:33:23 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();

        String[] split = s.split(" ");

        if(split.length == 1){
            System.out.println(s);
        } else {
            String str="";
            StringBuilder sb = new StringBuilder();
            for(int i=0;i<split.length;i++){
                sb.append(split[split.length-1-i]).append(" ");
            }
            sb.deleteCharAt(sb.length()-1);
            System.out.println(sb.toString());

        }
    }
}
发表于 2024-04-18 16:43:50 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] s = str.split(" ");
        for (int i = s.length - 1; i >  0; i--) {
            System.out.print(s[i] + " ");
        }
        System.out.print(s[0]);
    }
}
编辑于 2024-04-15 19:19:52 回复(0)
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        String[] arr = str.split(" ");

        StringBuilder builder = new StringBuilder();
        for (int i = arr.length - 1; i >= 0; i--) {
            builder.append(i == 0 ? arr[i] : arr[i] + " ");
        }
        System.out.println(builder.toString());
    }
}


编辑于 2024-03-06 19:31:23 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str =  in.nextLine();
        if(str.contains(" ")){
            String [] strArr = str.split(" ");
            for(int i = strArr.length - 1; i >= 0 ; i--){
                System.out.print(strArr[i] + " ");
            }
        }else{
            System.out.print(str);
        }
    }
}

编辑于 2024-01-28 22:45:18 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s = sc.nextLine();
        String[] split = s.split(" ");
        for (int i = split.length-1; i >=0 ; i--) {
            System.out.print(split[i]+" ");
        }
    }
}

发表于 2023-11-15 19:54:41 回复(0)