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"로 작성한 것과 매우 비슷할 것이다. 위의 코딩 된 메서드는 내게 잘 juss 작동합니다. 그러나 이것을 수행하기위한 표준 알고리즘이 있는지 알고 싶었습니다. – Goku