题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

// 利用sort特性字母排序,之后用splice插入非字母
while(line = readline()) {
var indexArr = [];
var otherArr = [];
var aArr = [];
var reg = new RegExp(/[a-z]/i);
for(var i =0; i < line.length; i++) {
if (reg.test(line[i])) { // a
aArr.push({key: line[i], index: i});
} else {
otherArr.push(line[i]);
indexArr.push(i);
}
}
aArr.sort((a, b) => { var c = transChar(a.key.charCodeAt(0)) - transChar(b.key.charCodeAt(0)); return c ? c : a.index - b.index; });
var shortArr = aArr.map((item) => item.key);
for (var i = 0; i < indexArr.length; i++ ) {
shortArr.splice(indexArr[i], 0, otherArr[i]);
}
console.log(shortArr.join(''));
}
function transChar(code) { if (code >= 65 && code <= 90) { return code + 32 } else {return code} };

全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务