Untuk String A = "abcd" maka jawabannya seharusnya
{a,ab,abc,abcd,b,bc,bcd,c,cd,d}
Untuk menemukan semua substring saya menggunakan metode berikut
for (int i = 0; i < A.length(); i++) {
for (int j = i+1; j <= A.length(); j++) {
System.out.println(A.substring(i,j));
}
}
Namun menurut pemahaman saya, kompleksitasnya mencapai O(N^2)
. Bisakah kita membuatnya lebih cepat? Saya merujuk pertanyaan sebelumnya dan ada tautan untuk suffix tree tetapi sepertinya tidak menyelesaikan masalahku. Output yang saya dapatkan dari suffix tree adalah
{
1: abcd
2: bcd
3: cd
4: d
}
Adakah yang bisa membantu saya menemukan cara tercepat untuk melakukan ini? Sesuatu seperti dalam waktu linier?
for (int j = i+1; j <= A.length(); j++)
harus diubah menjadifor (int j = i+1; j <= A.length() - i; j++)
- person HojjatK   schedule 09.06.2019