题解 | #字符串排序#

字符串排序

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

const input = readline().split('');
const helper = [];
const letter = /[A-Z]/i;

// 保存非字母的字符和其所在下标
const nonLetter = new Map();
// 把字母按插入排序的思路做由小到大排序
// 把非字母的字符及其位置下标单独保存起来,当所有字母排序完成后,在按原先下标位置插回去
for (let i = 0, len = input.length; i < len; i++) {
  const cur = input[i];
  // 是字母
  if (letter.test(cur)) {
    let j = helper.length;
    for (; j > 0; j--) {
      if (helper[j - 1].toLowerCase() > input[i].toLowerCase()) {
        helper[j] = helper[j - 1];
        continue;
      }
      break;
    }
    helper[j] = input[i];
  } else {
    nonLetter.set(i, cur);
  }
}

for (const [i, v] of nonLetter.entries()) {
  helper.splice(i, 0, v);
}

console.log(helper.join(''));

全部评论

相关推荐

仁者伍敌:服务员还要脱颖而出,这是五星级酒店吗
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务