#417. 文本重排:仅排序单词
文本重排:仅排序单词
文本重排:仅排序单词
故事背景
编辑在排版一段混合文本(单词与数字)时,希望只对其中的英文单词做字典序排序,而所有数字保持原有位置不动,以尽量减少人工校对成本。
题目描述
给定一行由 n 个“记号”构成的序列,每个记号要么是仅含小写字母的单词,要么是仅含数字的非负整数。请将所有“单词记号”按字典序从小到大排序后,依次覆盖回这些单词原先出现的位置;所有“数字记号”的内容与位置保持不变。输出重排后的序列。
输入格式
- 第一行一个整数 n。
- 第二行包含 n 个记号(token),相邻用一个空格分隔。每个记号要么是
[a-z]+,要么是[0-9]+。
输出格式
- 输出一行,包含重排后的 n 个记号,空格分隔。
输入输出样例 #1
输入 #1
7
orange 12 apple 5 banana 7 kiwi
输出 #1
apple 12 banana 5 kiwi 7 orange
样例解释 #1
单词为 {orange, apple, banana, kiwi},排序后为 {apple, banana, kiwi, orange},覆盖回单词出现的位置;数字 12、5、7 保持不动。
说明/提示
- 1 ≤ n ≤ 10^4;单词长度 1–20;整数不含前导零(数字 0 除外)。
- 实现要点:收集所有单词到数组并排序;再遍历原序列,遇到单词弹出下一个有序单词,遇到数字直接输出原数字。