问题描述 |
---|
在某系统中,如果某个文件夹里存着一系列电视剧,起名为a1b、a2b、...,按照文件名排序时,会按照如下顺序排列a1b、a2b、a3b、...、a9b、a10b、a11b、...、a99b、a100b、...。 这种排序顺序是对字符串排序的一个调整,把字符串中相邻的数字字符当作一个“特殊的”数字字符,规定数字字符永远小于大小写字母字符,数字字符相比时,按照其表示的数字比大小。这样做的好处是电视剧集会按照正确的次序排序。 按照上述规定,a9b会小于a10b,因为第一个字符相同,在比较第二个字符时,a10b中的10被视为1个数字字符,而9比10小,所以a9b小于a10b;b9b会大于a10b,因为第一个字符就分出了大小;ab9比a10b大,因为规定10比b小(数字字符永远小于大小写字母字符)。 现在有一大堆未经排序的文件名,请输出按照以上排序规则排序后的第一个文件名和最后一个文件名。 |
输入描述 |
多组案例。一个正整数n,表示案例的数量。(n<=20) 每组案例中,有一个正整数m,表示字符串的数量。(2<=m<=10000) 然后是m个字符串,每个字符串有效字符数量不超过100个,且字符串只包含数字字符、大小写字母字符,连续的数字字符表示的数字范围不会超过long long int。 |
输出描述 |
每组案例,输出根据【描述】中的排序规则排序后的第一个字符串和最后一个字符串,两个字符串中间间隔一个空格字符,然后换行。 |
样例输入复制样例 |
2 4 a01c a2c a10b 3ab 3 a1b2c a3bc a12bc |
样例输出 |
3ab a10b a1b2c a12bc |
提示说明 |
第一组案例中,顺序是3ab、a01c、a2c、a10b; 第二组案例中,顺序是a1b2c、a3bc、a12bc,其中a1b2c中1和2字符不连续(中间隔了非数字字符b),所以第二个字符是1,而a12bc中的12被视为一个字符。 |
相关 |