小编Kou*_*jee的帖子

打孔/将多个字符串组合成一个(最短的)字符串,其中包含每个字符串向前的所有字符

我的目的是将多个字符串打成一个(最短)字符​​串,该字符串将包含每个字符串在向前方向上的所有字符.问题不是针对任何语言,而是针对该algorithm部分.(可能会在节点服务器中实现它,所以标记nodejs/javascript).

那么,解释一下这个问题:

让我们考虑一下我的字符串很少

["jack", "apple", "maven", "hold", "solid", "mark", "moon", "poor", "spark", "live"]
Run Code Online (Sandbox Code Playgroud)

结果字符串应该类似于:

"sjmachppoalidveonrk"
Run Code Online (Sandbox Code Playgroud)

杰克:s j m ac hppoalidveonr k

apple:sjm a ch pp oa l idv e onrk

固体:s jmachpp o一个盖子 veonrk

==================================== >>>>所有前进方向

这些都是手动评估,在示例中输出可能不是100%完美.

所以,关键是每个字符串的所有字母都必须存在于FORWARD DIRECTION的输出中 (这里实际问题属于),并且服务器可能会发送最终的字符串和数字,就像27594生成并传递以提取令牌一样,在所需的一端.如果我必须在尽可能小的字符串中打它,那就更容易了(这种情况下只有唯一的字符就足够了).但在这种情况下有一些要点:

  1. 字母可以存在多个时,虽然我有重用如果可能的话,如任何字母:为solidhold o > l > d可重复使用的前进方向,但对于apple(a > p)和spark (p > a),我们不得不重复a在一个情况下,它之前出现papple,并经过p …

javascript algorithm node.js

23
推荐指数
2
解决办法
1015
查看次数

如何将对象的值作为数组,给定键列表?

我的对象如下,

obj = {
  '1': {val: 1},
  '2': {val: 2},
  '3': {val: 3},
  '4': {val: 4},
  ...
}
Run Code Online (Sandbox Code Playgroud)

给定键列表(作为Array),我想获得所有值列表(作为Array).

例如,

如果键列表是['3', '4'],输出将是[{val: 3}, {val: 4}]

我尝试如下

_.values(_.pick(obj, ['3', '4']))
Run Code Online (Sandbox Code Playgroud)

这可以工作,但它会进行两次迭代.有没有办法在一次迭代中实现相同的目标.提前致谢.

javascript performance underscore.js lodash

1
推荐指数
1
解决办法
75
查看次数