题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

题意整理。

  • 输入n个字符串。
  • 对这n个字符串进行字典序排列,并输出。

方法一(调用sort)

1.解题思路

  • 新建字符串数组,存储所有输入的字符串。
  • 调用Arrays的sort方法对字符串数组进行排序,然后遍历字符串数组,输出所有的字符串。

图解展示: alt

2.代码实现

import java.util.Arrays;
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        //输入正整数n
        int n=sc.nextInt();
        //用于存储输入的字符串
        String[] str=new String[n];
        for(int i=0;i<n;i++){
            str[i]=sc.next();
        }
        //按字典序排列
        Arrays.sort(str);
        //输出所有字符串
        for(String s:str){
            System.out.println(s);
        }
    }
}

3.复杂度分析

  • 时间复杂度:输入的字符串个数不超过1000,对应要处理的字符串为常数级别,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)

方法二(io流)

1.解题思路

思路和方法一相同,不过使用io流的方式来处理输入。

2.代码实现

import java.io.*;
import java.util.Arrays;

public class Main{
    public static void main(String[] args){
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        try{
            //输入正整数n
            int n=Integer.parseInt(br.readLine());
            //用于存储输入的字符串
            String[] str=new String[n];
            for(int i=0;i<n;i++){
                str[i]=br.readLine();
            }
            //按字典序排列
            Arrays.sort(str);
            //输出所有字符串
            for(String s:str){
                System.out.println(s);
            }
        }
        catch(IOException e){
            
        }
        
    }
}

3.复杂度分析

  • 时间复杂度:输入的字符串个数不超过1000,对应要处理的字符串为常数级别,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论
时间复杂度和空间复杂度本来就是一个相对的概念,如果一个算法里要遍历一个大小为n的数组100次,你会说时间复杂度是O(100*n)吗?至于这个题目,数据范围比较小,当然可以看作常熟级别时间、空间复杂度。如果非要分析,也可以把10大排序算法拿出来一个个分析,或者剖析sort接口的底层实现,什么时候插入排序、什么时候使用快排、什么时候使用归并。这些东西完全看个人兴趣自己去了解了。
点赞 回复 分享
发布于 2022-08-14 10:11
哥们,你到底会不会分析时间复杂度和空间复杂度,不会的话别乱写误导别人啊
点赞 回复 分享
发布于 2022-08-13 23:33

相关推荐

评论
3
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4401次浏览 77人参与
# 找AI工作可以去哪些公司? #
9509次浏览 255人参与
# 米连集团26产品管培生项目 #
13428次浏览 285人参与
# 你的实习产出是真实的还是包装的? #
20489次浏览 343人参与
# AI面会问哪些问题? #
28438次浏览 572人参与
# 春招至今,你的战绩如何? #
66746次浏览 588人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15481次浏览 223人参与
# 从事AI岗需要掌握哪些技术栈? #
9382次浏览 329人参与
# 中国电信笔试 #
32126次浏览 295人参与
# 你做过最难的笔试是哪家公司 #
34705次浏览 253人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
341033次浏览 2175人参与
# 金三银四,你的春招进行到哪个阶段了? #
22379次浏览 284人参与
# 同bg的你秋招战况如何? #
212250次浏览 1121人参与
# 哪些公司真双非友好? #
69755次浏览 289人参与
# 如何准备秋招 #
78315次浏览 868人参与
# 阿里笔试 #
179152次浏览 1318人参与
# 机械人避雷的岗位/公司 #
62713次浏览 393人参与
# 小马智行求职进展汇总 #
25149次浏览 80人参与
# 第一份工作一定要去大厂吗 #
14992次浏览 122人参与
# 担心入职之后被发现很菜怎么办 #
291406次浏览 1210人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26297次浏览 310人参与
# 应届生第一份工资要多少合适 #
20707次浏览 86人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务