day11 HJ13 句子逆序

234 阅读1分钟

题目来源: HJ13 句子逆序

题目描述:

  • 描述:
    将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
    所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 数据范围:输入的字符串长度满足 1n10001 \le n \le 1000 注意本题有多组输入
  • 输入描述: 输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。
  • 输出描述: 得到逆序的句子
示例1:
    输入:I am a boy
    输出:boy a am I
示例2:
    输入:nowcoder
    输出:nowcoder

思路:

使用split方法将句子中的每次单词进行拆分出来,放入字符串数组中,然后将字符串数组从尾到头输出

具体实现:

        public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        String[] str1 = str.split(" ");
        //split()根据匹配给定的正则表达式来拆分字符串,当前给定的是根据空格拆分
        for(int i = str1.length -1;i>=0;i--){
            if(i != 0) { 
                System.out.print(str1[i] + " ");
            }else { //因为最后一个输出的单词,是字符串数组中第一个,所以用i == 0来确认
                System.out.print(str1[i]);  //最后一个输出的单词后面没有空格
            }
        }
    }
  • 时间复杂度:O(n) ——进行了遍历的操作
  • 空间复杂度:O(n) ——引入了额外的空间