leavens
2017-04-12 15:57:40
例如: var arr = ['A','B','4','C','1','D','7','8'],排序之后要顯示成A1B4C7D8
3 回答

Xyino_Snake
TA貢獻(xiàn)31條經(jīng)驗(yàn) 獲得超22個(gè)贊
我不懂JavaScript。只懂C++。但算法思路很簡(jiǎn)單。
這樣。先把字母符號(hào)抽取出來(lái),再把數(shù)字符號(hào)抽取出來(lái)。分別排序,再一一對(duì)應(yīng),合起來(lái)。絕對(duì)不難。
C語(yǔ)言的話要依靠ctype.h里的字符類別判斷函數(shù)。Java我不知道。

ruibin
TA貢獻(xiàn)358條經(jīng)驗(yàn) 獲得超213個(gè)贊
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);
沒(méi)有直接排序法,有間接排序法。
添加回答
舉報(bào)
0/150
提交
取消