字符串排序(HJ14)

字符串排序

题目描述

https://www.nowcoder.com/share/jump/5832603751775720180207

给定 n 个字符串,按字典序从小到大排序后输出。

示例

输入:

5
cap
cat
card
two
up
输出:
cap
card
cat
two
up

解题思路

Python 内置排序

Python 的 list.sort() 方法默认按字典序(字典顺序)排序字符串,直接使用即可。

代码实现

n = int(input())
arr = [input().strip() for _ in range(n)]

arr.sort()
for s in arr:
    print(s)

代码解析

arr.sort() - 就地排序

arr.sort()  # 直接修改 arr,不返回新列表

字典序规则:逐字符比较 ASCII 码

"cap" vs "card"
c = c      → 相等
a = a      → 相等
p < d      → "cap" < "card" (False)

实际上 p (112) > d (100),所以 "card" < "cap"

输出排序结果

for s in arr:
    print(s)  # 逐行输出

时间复杂度

  • O(n log n × m) - n 个字符串,每个平均长度 m,排序比较 O(m)

空间复杂度

  • O(n × m) - 存储 n 个字符串

字符串排序(HJ14)
https://mingsm17518.github.io/2026/04/09/algorithm/华为机考/nowcoder/String/14_sort_strings/
作者
Ming
发布于
2026年4月9日
更新于
2026年4月9日
许可协议