题解 | #字符串分隔#
字符串排序
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(''))
}