【问题标题】:Print All those numbers from a given list which contain 1,2,3 not necessarily in sequence打印给定列表中包含 1、2、3 的所有数字,不一定按顺序排列
【发布时间】:2018-01-01 07:08:25
【问题描述】:

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

输出中的数字应该是有序的。

像 876321,3245,123 那么输出应该是:

123,876321

【问题讨论】:

  • 很遗憾,您没有亲自尝试解决这个问题
  • output should be in sorted order升序(?) lexical 还是 numeric 顺序?负数呢?

标签: algorithm numbers digit


【解决方案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 );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多