我的目的是将多个字符串打成一个(最短)字符串,该字符串将包含每个字符串在向前方向上的所有字符.问题不是针对任何语言,而是针对该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生成并传递以提取令牌一样,在所需的一端.如果我必须在尽可能小的字符串中打它,那就更容易了(这种情况下只有唯一的字符就足够了).但在这种情况下有一些要点:
字母可以存在多个时,虽然我有重用如果可能的话,如任何字母:为solid和hold o > l > d可重复使用的前进方向,但对于apple(a > p)和spark
(p > a),我们不得不重复a在一个情况下,它之前出现p
的apple,并经过p …
我的对象如下,
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)
这可以工作,但它会进行两次迭代.有没有办法在一次迭代中实现相同的目标.提前致谢.