Latihan 1 dari materi String Matching (KMP) di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function buildLPS(pattern) supaya mengembalikan tabel LPS: array angka sepanjang pattern.length.
lps[i] adalah panjang awalan terpanjang yang juga jadi akhiran, untuk potongan pattern dari huruf 0 sampai huruf i. Seluruh potongan gak dihitung sebagai awalan (proper), jadi lps[0] selalu 0.
Contoh: "abab" jadi [0, 0, 1, 2], "aaaa" jadi [0, 1, 2, 3].
Kalau cocoknya putus, len mundur ke lps[len - 1], bukan langsung ke 0.
Empat console.log di bawahnya (yang menggabung hasil dengan koma) harus mencetak, berurutan:
0,0,1,2
0,1,2,3
0,0,0,1,2,3,0
0,1,0,1,2,3,4,5,2