打印给定列表中包含1,2,3的所有数字,不一定按顺序排列

时间:2018-01-01 07:08:26

标签: algorithm numbers digit

打印给定列表中包含数字1,2,3的所有数字,不一定按顺序排列。

输出中的数字应按排序顺序排列。

如876321,3245,123,则输出应为:

123,876321

1 个答案:

答案 0 :(得分:1)

使用具有一些正向前瞻的正则表达式进行正则表达式匹配,以确保有1 2和3。这是一个适用于您的测试用例的示例。 https://regex101.com/r/y052Pi/1/

(?=.*1)(?=.*2)(?=.*3)[0-9]*

将您的匹配放入可排序或已排序的集合中。

这是一个可运行的js实现。

 var testValues = [876321,3245,123],
     results = [];
     
testValues.forEach( function( element ) {
  if( /^(?=.*1)(?=.*2)(?=.*3)[0-9]*/.test( '' + element) ) {
    results.push(element);
  }
});

results = results.sort( (a, b) => a - b );

console.log( results );