Я хочу, чтобы определить неизвестный образец в виде строки, например, как,Строка Неизвестный шаблон соответствия
s = 112468112468112468112468112468.
Итак, в этой строке мы можем ясно видеть, что 112468 является повторяющимся образцом. Я искал на google совсем немного, чтобы найти некоторые алгоритмы, которые могли бы мне помочь, но я мог видеть только те, которые находят данный шаблон в строке, такой как алгоритм Бойера-Мура и т. Д.
Что я сейчас делаю, чтобы найти эти повторяющиеся неизвестный образец является то, что
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
Ну, типа шаблонов, с которыми я имею дело, будут строки с повторяющимися узорами и будут очень похожи на ту, которую я написал выше, как «s» и. Метод, который я закодировал выше, работает для меня очень хорошо. Но я просто хотел знать, есть ли какой-то стандартный алгоритм для этого. – Goku