我想確定一個字符串中的未知模式,如String未知模式匹配
s = 112468112468112468112468112468。
所以在這個字符串中,我們可以清楚地看到112468是重複模式。我在谷歌搜索 頗有幾分尋找一些算法來幫助我,但我只能看到那些在哪一個字符串,如博耶 - 穆爾算法等找到一個給定的模式
我現在做的怎麼找到這些重複未知的模式是,
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]
}
}
}
}
雖然這適用於給定的字符串使用的4種文字的對比窗,它很可能不是爲其他字符串工作。有沒有人知道這個更好的解決方案。
由於
讓一臺機器識別文本中的任何模式並不是一個小問題。你是否只對**有興趣,例如,重複模式的字符串?如果您可以給我們**類型**或您感興趣搜索的圖案或圖案,我們可能會提供更多幫助。 – jefflunt 2012-02-20 22:20:50
那麼,我正在處理的模式將是重複模式的字符串,並且會非常類似於我在上面寫爲「s」和「」的字符串。我上面編寫的方法對我來說很合適。但我只是想知道是否有一些標準算法來做到這一點。 – Goku 2012-02-20 22:26:56