例如: var arr = ['A','B','4','C','1','D','7','8'],排序之后要显示成A1B4C7D8
3 回答
Xyino_Snake
TA贡献31条经验 获得超22个赞
我不懂JavaScript。只懂C++。但算法思路很简单。
这样。先把字母符号抽取出来,再把数字符号抽取出来。分别排序,再一一对应,合起来。绝对不难。
C语言的话要依靠ctype.h里的字符类别判断函数。Java我不知道。
ruibin
TA贡献358条经验 获得超213个赞
var arr = ['A','B','4','C','1','D','7','8', '9'];
arr.sort();
var num_set = [],
str_set = [];
for (var i = 0; i < arr.length; i ++) {
if (arr[i].charCodeAt(0) < 65) {
num_set.push(arr[i]);
} else {
str_set.push(arr[i]);
}
}
console.log(num_set);
console.log(str_set);
var ret = [];
for (var i = 0, j = 0; i < num_set.length, j < str_set.length; i ++, j ++) {
ret.push(str_set[j] + num_set[i]);
}
console.log(ret);
没有直接排序法,有间接排序法。
添加回答
举报
0/150
提交
取消