#1534. 字符串拼接最小值

字符串拼接最小值

故事背景

在一个字符串处理系统中,需要将多个字符串拼接成一个单一的字符串。为了节省存储空间和提高处理效率,系统要求拼接后的字符串尽可能小。作为系统的开发者,你需要设计一个算法,根据给定的字符串列表,计算出拼接后最小的字符串。

题目描述

给定一个字符串列表,将这些字符串拼接成一个字符串,使得拼接后的字符串是所有可能的拼接结果中字典序最小的。

例如,给定字符串列表 ["abc", "de"],可以拼接成 "abcde" 或 "deabc",其中 "abcde" 是字典序最小的。

输入格式

第一行输入一个整数 n ( 1n1001 \leq n \leq 100 ),表示字符串的数量。

第二行输入 n 个字符串,每个字符串由小写字母组成,长度不超过 100100

输出格式

输出一个字符串,表示拼接后的最小字符串。

样例输入 1

2
abc de

样例输出 1

abcde

样例输入 2

3
3 30 34

样例输出 2

30334

样例输入 3

4
12 121 1 2

样例输出 3

1121212

提示

  • 这是一个经典的字符串拼接问题,贪心算法可以得到最优解
  • 注意排序规则的设计,不能简单地按字典序排序
  • 考虑如何比较两个字符串的顺序,使得它们拼接后的结果更小
  • 注意处理特殊情况,例如 "3" 和 "30" 的比较