Saya ingin menentukan pola yang tidak diketahui dalam sebuah string seperti,
s=112468112468112468112468112468.
Jadi pada string ini, kita dapat melihat dengan jelas bahwa 112468 adalah pola yang berulang. Saya mencari di Google sedikit untuk menemukan beberapa algoritma untuk membantu saya, tapi saya hanya bisa melihat algoritma yang menemukan pola tertentu dalam string seperti algoritma Boyer-Moore dll.
Apa yang saya lakukan sekarang untuk menemukan pola berulang yang tidak diketahui ini adalah,
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]
}
}
}
}
Meskipun ini berfungsi untuk string tertentu dengan menggunakan jendela perbandingan 4 literal, ini mungkin tidak berfungsi untuk string lainnya. Adakah yang tahu solusi yang lebih baik untuk ini.
Terima kasih