2878. 字串排序

单点时限: 2.0 sec

内存限制: 256 MB

在 2010 年百度公司的一次校园招聘笔试中,要求应聘者设计一个 strnumcmp 函数。对比普通的 strcmp 函数,差别在于,当字符串中包含数字时,比较数字大小。数字大小相同或不含数字时,仍然沿用原来的 strcmp 方式。所有不含数字的字符串均小于含数字的字符串。每个字符串的长度范围为 1 ~ 30,而其中包含的数字个数范围为 0 ~ 8,且数字在一个字符串中是连续的。

例如:strnumcmp 的判定结果:

"abc"<"abc#"<"abcd"<"abc1"<"abc2"<"abc10"

而一般的 strcmp 的判定结果:

"abc"<"abc#"<"abc1"<"abc10"<"abc2"<"abcd"

写一个程序,用 strnumcmp 函数对一组字符串按升序排序。

输入格式

$n$ 个由一个空格分隔的字符串 ($1 \leqslant n \leqslant 100$)

输出格式

排序后的 $n$ 个字符串,两个字符串之间用一个空格分开。

样例

Input
abc# abc1 abc10 abcd abc2 abc
Output
abc abc# abcd abc1 abc2 abc10

提示

  1. 字符串中可能包含0,如”a0”。并且”a0”>”zzzz”。
  2. 调用scanf函数时,正确读取数据时返回读入数据项的个数,小于1时通常表示数据读完或读取出错。
  3. 在Windows环境中运行程序时,输入Control+Z后输入回车表示输入流的结束。

1965 人解决,2164 人已尝试。

3117 份提交通过,共有 10469 份提交。

1.0 EMB 奖励。

创建: 13 年,1 月前.

修改: 5 年,6 月前.

最后提交: 10 小时前.

来源: 编程实践第4次考试

题目标签