3.8.7 · D3 · HinglishString Algorithms

Worked examplesSuffix array — construction O(n log n), LCP array

2,536 words12 min read↑ Read in English

3.8.7 · D3 · Coding › String Algorithms › Suffix array — construction O(n log n), LCP array

Yeh parent Suffix-Array note ka hands-on companion hai. Parent ne machinery banai thi; yahan hum us machinery ko har tarah ke input par chalate hain jo ek problem tumhe de sakti hai — including woh weird degenerate cases jo naive code ko tod dete hain.


Scenario matrix

Har string jo tum kabhi bhi suffix array mein daaloge, woh in cells mein se kisi ek mein aati hai. Last column us example ka naam batata hai jo ise pin karta hai.

Cell Scenario class Kya break ho sakta hai Example
A Generic mixed string prefix-doubling rounds, sentinel Ex 1 (mississippi)
B Sab characters equal (aaaa) har suffix ek prefix share karta hai; LCP ek staircase hai Ex 2
C Sab characters distinct (abcd) pehla round already finish ho jaata hai; LCP sab zero Ex 3
D Length 1 (a) ek suffix, koi adjacent pair nahi, koi LCP entry nahi Ex 4
E Empty string () loops nahi chalane chahiye; array empty hai Ex 4
F Kasai "drop by at most 1" reuse galat reset karna → Ex 5
G Word problem — pattern search binary-search block contiguous hona chahiye Ex 6
H LCP se distinct substrings count karna do sums mein off-by-one Ex 7
I Exam twist — do suffixes ka LCP via RMQ non-adjacent pair ka LCP range-min chahta hai Ex 8

Cells A–I sab neeche cover hain. Chalte hain inhe walk karte hue.


Ex 1 — Cell A: ek generic string, full doubling


Ex 2 — Cell B: sab characters equal


Ex 3 — Cell C: sab characters distinct


Ex 4 — Cells D & E: length 1 aur empty (degenerate)


Ex 5 — Cell F: Kasai ka "drop by at most 1" reuse dekhna



Ex 7 — Cell H: distinct substrings count karna (formula drill)


Ex 8 — Cell I: exam twist, do non-adjacent suffixes ka LCP


Recap

Recall Har example ne kaun sa cell cover kiya?

Ex 1 ::: A — generic string, full prefix-doubling Ex 2 ::: B — sab equal characters (staircase LCP) Ex 3 ::: C — sab distinct (ek round, zero LCP) Ex 4 ::: D aur E — length 1 aur empty string Ex 5 ::: F — Kasai ka carry-over, drop-by-1 Ex 6 ::: G — pattern search via contiguous block Ex 7 ::: H — distinct-substring counting formula Ex 8 ::: I — non-adjacent suffixes ka LCP via RMQ

Related tools jo revisit karne layak hain: Radix Sort aur Counting Sort (fast per-round sorting), Suffix Tree (bhaari cousin), Z-Algorithm aur KMP (single-pattern alternatives), aur Burrows–Wheeler Transform (sorted-suffix order se directly banta hai).