要素が必ずしも隣接している必要はありませんが、N 文字以内で発生する必要がある部分列を文字列で検索しているとします。そう、
search("abc","aaabbbccc",7) => True
search("abc","aabbcc",3) => False
この比較を実行する効率的なデータ構造/アルゴリズムを探しています。内部ワイルドカードのすべての有効な組み合わせを検索するなど、いくつかのアプローチを考えることができます。
search("abc",whatever,4) => "abc","a*bc","ab*c"
複数文字列検索アルゴリズム (おそらくAho–Corasick ) のいずれかを使用していますが、より良い解決策があるかどうか疑問に思っています。