0

2 つのシーケンス/文字列の lcs を見つける方法は知っていますが、lcs は、サブシーケンスが連続している必要があるという制限を課していません。私は次のようにそれを試しました

function lccs(a, b)
    if a.length == 0 or b.length == 0
        return ""
    possible = []
    if a[0] == b[0]
      possible.push(lcs(a[1:), b[1:])
    possible.push(lcs(a[1:], b))
    possible.push(lcs(a, b[1:))
    return longest_string(possible)

wherelongest_stringは配列内の最長の文字列を返し、s[1:]最初の文字から始まる s のスライスを意味します。

サーバーのハードウェア仕様についてはわかりませんが、これをjavascriptのブラウザー内とgolangの両方で実行しました。リモートサーバーでは、lccsへの各呼び出しを独自のゴルーチンに配置しました。これらのルーチンの並列化。

どちらの場合も、私のニーズには遅すぎました。これをスピードアップする方法はありますか?

4

1 に答える 1