题解 | #字符串分隔#

字符串排序

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

while(line = readline()){
let read=line.split('')
//将所有的大小字母按顺序放到upper数组中
let upper=[]
for(let i=65;i<=90;i++){
    upper.push(String.fromCharCode(i))
}

//将用例中的全部字母放到result中(同一个英文字母的大小写同时存在时,按照输入顺序排列)
let result=[]
upper.forEach(i=>{
   result.push(...read.filter(y=>y.toUpperCase()===i))
})
result.reverse()//翻转结果,方便后面使用出栈

let maped=read.map(i=>{
    if(i.charCodeAt()<65||i.charCodeAt()>90&&i.charCodeAt()<97||i.charCodeAt()>122){
        return i//如果非字母则直接返回
    }else{
        return '\n'//是字母全部改下成\n字符串
    }
}).map((i)=>{
    if(i==='\n'){//如果是\n字符串则将之前记录的有顺序的字母出栈
        return result.pop()
    }else{
        return i
    }
})
console.log(maped.join(''))
}
全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务