如何组成最大数
有一堆卡片,每张卡片上是6位内的正整数,将卡片连起来可以组成多种数字,计算组成的最大数字。
输入描述:
“,”号分割的多个正整数字符串,不需要考虑非数字异常情况,卡片最多20张
输出描述:
最大的数字字符串
示例1:
输入
22,221
输出
22221
let str = '22,221,239,231,998'
let arr = str.split(',')
arr.sort((a,b)=>{
let len = a.length>b.length?a.length:b.length
for(let i=0;i<len;i++){
if(Number(a[i])<Number(b[i])){
return 1
}else if(Number(a[i])>Number(b[i])){
return -1
}
}
if(a.length===b.length){
return 0
} else if(a.length>b.length){
if(Number(a[b.length])>Number(b[0])){
return -1
}else if(Number(a[b.length])<Number(b[0])){
return 1
}else {
return 0
}
}else{
if(Number(b[a.length])>Number(a[0])){
return 1
}else if(Number(a[b.length])<Number(b[0])){
return -1
}else {
return 0
}
}
return 0
})
let resultStr = ''
for(let i of arr){
resultStr += i
}
console.log(resultStr);
机试题 文章被收录于专栏
某机试题,网上很少用js写的答案只有自己写了