相关疑难解决方法(0)

在一组字符串中查找最长的公共起始子字符串

对于一个相对微不足道的问题,提出最优雅的JavaScript,Ruby或其他解决方案是一项挑战.

此问题是最长公共子字符串问题的更具体情况.我只需要在数组中找到最长的公共起始子字符串.这大大简化了问题.

例如,最长的子串[interspecies, interstelar, interstate]是"inters".但是,我不需要找到"ific" [specifics, terrific].

我已经通过快速编写JavaScript解决方案来解决这个问题,作为我关于类似shell的选项卡完成的答案的一部分(这里是测试页面).这是解决方案,略有调整:

function common_substring(data) {
  var i, ch, memo, idx = 0
  do {
    memo = null
    for (i=0; i < data.length; i++) {
      ch = data[i].charAt(idx)
      if (!ch) break
      if (!memo) memo = ch
      else if (ch != memo) break
    }
  } while (i == data.length && idx < data.length && ++idx)

  return (data[0] || '').slice(0, idx)
}
Run Code Online (Sandbox Code Playgroud)

代码在此Gist中提供,以及Ruby中的类似解决方案.您可以将gist克隆为git repo来试用它: …

javascript ruby python haskell longest-prefix

39
推荐指数
6
解决办法
3万
查看次数

将正在运行的ipython笔记本与进程匹配

我的服务器运行许多长时间运行的笔记本电脑,我想监控笔记本电脑的内存.

有没有办法在pid或进程名称和笔记本之间进行匹配?

ipython ipython-notebook

11
推荐指数
4
解决办法
3939
查看次数

来自两个以上字符串的最长公共单词序列

我试图在句子列表(两个以上的句子)中找到最长的常用单词序列。

例子:

list = ['commercial van for movers', 'partial van for movers', 'commercial van for moving' ]
sents = pd.Series(list)
Run Code Online (Sandbox Code Playgroud)

这个答案中,该解决方案工作正常,但它捕获了部分单词并返回以下内容:

'ial van for mov'
Run Code Online (Sandbox Code Playgroud)

输出应该是

'van for'
Run Code Online (Sandbox Code Playgroud)

我找不到修改它以返回所需输出的方法

python string

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

三个字符串的最长公共子序列

我已经编写了这些函数(可以工作)来找到两个字符串中最长的公共子序列.

def lcs_grid(xs, ys):
    grid = defaultdict(lambda: defaultdict(lambda: (0,"")))
    for i,x in enumerate(xs):
        for j,y in enumerate(ys):
            if x == y:
                grid[i][j] = (grid[i-1][j-1][0]+1,'\\')
            else:
                if grid[i-1][j][0] > grid[i][j-1][0]:
                    grid[i][j] = (grid[i-1][j][0],'<')
                else:
                    grid[i][j] = (grid[i][j-1][0],'^')

    return grid

def lcs(xs,ys):
    grid = lcs_grid(xs,ys)
    i, j = len(xs) - 1, len(ys) - 1

    best = []
    length,move = grid[i][j]
    while length:
        if move == '\\':
            best.append(xs[i])
            i -= 1
            j -= 1
        elif move == '^':
            j -= 1
        elif move …
Run Code Online (Sandbox Code Playgroud)

python

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

如何判断两个字符串是否有公共字符部分?--Python

有两个字符串:

   str1 = "black_red_yellow"

   str2 = "blue_red_green"
Run Code Online (Sandbox Code Playgroud)

我可以使用哪个 python 库来检查这两个字符串是否有"_red_"共同的子字符串?先感谢您。

python

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