【发布时间】:2012-02-21 06:29:16
【问题描述】:
我想确定字符串中的未知模式,例如,
s=112468112468112468112468112468。
所以在这个字符串中,我们可以清楚地看到 112468 是重复模式。我搜索过 在谷歌上找到一些算法来帮助我,但我只能看到在字符串中找到给定模式的算法,例如 Boyer-Moore 算法等。
我现在要做的是找到这些重复的未知模式,
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 个文字的比较窗口适用于给定的字符串,但它很可能不适用于其他字符串。有没有人知道更好的解决方案。
谢谢
【问题讨论】:
-
让机器识别文本中的任何模式都不是小问题。例如,您是否只对具有重复模式的字符串感兴趣?如果您能给我们提供您有兴趣搜索的类型或模式,我们或许可以提供更多帮助。
-
嗯,我正在处理的那种模式将是具有重复模式的字符串,并且与我上面写的“s”非常相似。我上面编码的方法对我来说很好。但我只是想知道是否有一些标准算法可以做到这一点。
标签: string pattern-recognition