微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得 4 位数字的最小可能组合

如何解决如何获得 4 位数字的最小可能组合

我有 4 位整数。我必须得到最小数字,它是这些原始数字的组合(不能以零开头)

function changeDigitsOrder(num){
 return Number(num.toString().split('').sort().join(''))
}

它适用于没有 0 的数字,但如何从 1500 得到 1005

解决方法

您可以切换零和以下值。

function changeDigitsOrder(num) {
    return +num
        .toString()
        .split('')
        .sort((a,b) => a - b)
        .join('')
        .replace(/(0+)(.)/,'$2$1');
}

console.log(changeDigitsOrder(1500)); // 1005
console.log(changeDigitsOrder(321));  //  123

,

我玩过解构和lookbehind

const re = /(0{0,})+([1-9]{0,})+/g;
const smallest = num => {
  let str = num.toString().split('').sort().join('')
  let [parts] = str.matchAll(re)
  let [_,zeroes,other] = parts
  return +(other.replace(/(?<=^.{1})/,zeroes))
};

console.log(smallest(1500))
console.log(smallest(1245))
console.log(smallest(5421))
console.log(smallest(421))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。