题解 | #字符串排序#
字符串排序
http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
这道题目处理的重点在于两点。其一是如何区分字母与非字母字符,这里我用了一个判断条件a<x<z||A<x<Z,一开始没看出来错误,后来反应过来计算机语言一次只能比较两个数,这里应当分开写。其二是对于同一个字母的大小写,我想着如果直接排序的话会把原来的顺序打乱,一直苦恼不知道怎么处理,参考了题解中大佬的思路:由于大小写字母之间的编码差是一个固定值,采用从aA开始时查找字母的方法。将找到的字母依此存入一个新字符数组,然后对原数组从前往后遍历,若是判断为字母就在新的字符数组中取一个字符赋值给当前位置,否则就是非字符不做修改,最后输出整个字符串。这里这种不找字母再排序而是按顺序找字母的思想很有意思,加深了我对排序算法的认识。