s = 112468112468112468112468112468のような文字列の未知のパターンを特定したいとします。
この文字列では、112468が繰り返しパターンであることがわかります。 Googleで を検索しましたが、いくつかのアルゴリズムを見つけるのにはかなり役に立ちましたが、Boyer-Mooreアルゴリズムなどの文字列で特定のパターンを見つけることしかできませんでした。
未知のパターンはこれが4つのリテラルの比較ウィンドウを使用して、指定した文字列のために動作しますが、それは非常によく、他のいくつかの文字列では動作しない場合があり
for(i=0;i<Length of String;i++)
{
for(j=i+1;j<Length of String;j++)
{
if(s[i]==s[j] && s[i+1]==s[j+1] && s[i+2]==s[j+2] && s[i+3]==s[j+3])
{
patternlength=j-i;
for(k=i;k<j;k++)
{
pattern[k]=s[i+k]
}
}
}
}
、ということです。誰かがこれに対するより良い解決策を知っていますか?
おかげ
マシンにテキストのパターンを識別させることは、些細な問題ではありません。あなたは**だけ**興味があります、例えば、繰り返しパターンの文字列に興味がありますか?私たちに**タイプ**またはあなたが検索に興味があるパターンを与えることができるなら、我々はもっと助けることができるかもしれません。 – jefflunt
私が扱っているパターンの種類は、繰り返すパターンの文字列であり、上で "s"と書いたものと非常に似ています。上記のコード化されたメソッドは、私のためにうまく動作します。しかし、これを行うための標準的なアルゴリズムがあるかどうかを知りたかっただけです。 – Goku