当前位置: 首页 > news >正文

华为机试牛客刷题之HJ14 字符串排序

HJ14 字符串排序

描述
对于给定的由大小写字母混合构成的 n 个单词,输出按字典序从小到大排序后的结果。

从字符串的第一个字符开始逐个比较,直到找到第一个不同的位置,通过比较这个位置字符对应的(A<⋯<Z<a<⋯<z )得出字符串的大小,称为字典序比较。

输入描述:
第一行输入一个整数 n(1≦n≦1000) 代表给定的单词个数。
此后 n 行,每行输入一个长度 1≦length(s)≦100 ,由大小写字母混合构成的字符串 s ,代表一个单词。

输出描述:
输出 n 行,每行输出一个字符串,代表排序后的结果。第一行输出字典序最小的单词。

示例1

输入:
11
cap
to
cat
card
two
too
up
boat
boot
AA
Aa

输出:
AA
Aa
boat
boot
cap
card
cat
to
too
two
up

思路是读取输入的多行字符串,首行为数字表示后续字符串数量,剩余行存入数组。通过冒泡排序将字符串按字典序升序排列。compareTo() 方法区分大小写(大写字母排在小写字母之前)。

import java.util.Scanner;

// 注意类名必须为 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
            int len = Integer.parseInt(in.nextLine());
            String[] datas = new String[len];
            for(int k=0;k<len;k++){
                datas[k] = in.nextLine();
            }
            for(int i=0;i<len;i++){
                for(int j=0;j<len-i-1;j++){
                    if(datas[j].compareTo(datas[j+1]) > 0){
                        String temp = datas[j];
                        datas[j] = datas[j+1];
                        datas[j+1] = temp;
                    }
                }
            }
            for(int k=0;k<len;k++){
                System.out.println(datas[k]);
            }
            
        }
    }
}
http://www.dtcms.com/a/60904.html

相关文章:

  • 通过数据集微调LLM后怎么调用
  • 手写 Promise 的实现
  • Redis7系列:设置开机自启
  • 贪心算法三
  • 3月09日奇怪的Incorrect datetime value
  • git worktree的使用
  • c语言笔记 内存管理之栈内存
  • npm终端执行时报错
  • XGBoost介绍
  • 【Academy】OAuth 2.0 身份验证漏洞 ------ OAuth 2.0 authentication vulnerabilities
  • 【Java代码审计 | 第十一篇】SSRF漏洞成因及防范
  • git子仓库管理的两种方式
  • 【Python】整数除法不正确,少1的问题,以及有关浮点数转换的精度问题
  • 二:RV1126的VDEC视频解码模块的工作流程
  • AI革命编程学习:Python语法速通与高阶突破全实战(第二部分:AI辅助调试与高阶编程)
  • Flink-DataStreamAPI-生成水印
  • C++使用BFS求解最短路径
  • NS3学习——运行自定义拥塞控制算法步骤
  • 动态规划中固定倒数第二个数与倒数第一个数的区别与应用场景分析 —— 从最长等差数列问题到统计等差数列个数的填表策略对比
  • 关于前后端整合和打包成exe文件的个人的总结和思考
  • 数据集构建与训练前准备
  • VIC模型有哪些优势?适用哪些范围?基于QGIS的VIC模型建模;未来气候变化模型预测;基于R语言VIC参数率定和优化
  • 【Academy】Web 缓存欺骗 ------ Web cache deception
  • 如何实现wordpress搜索自字义字段内容
  • 分享最佳ChatGPT替代11个方案(2025)
  • 计算机组成原理(第六章 总线)
  • 关于在electron(Nodejs)中使用 Napi 的简单记录
  • 内容中台的核心架构是什么?
  • 【在校课堂笔记】Python 第 3 节课 总结
  • FlinkSQL源码笔记