Question
In the Knuth-Morris-Pratt (KMP) algorithm, the Longest
Proper Prefix Suffix (LPS) array lps[] is crucial. When pat[i] and pat[len] match, len is incremented and lps[i] is set to len. What happens when pat[i] and pat[len] *do not* match and len is not 0? void computeLPSArray(char* pat, int M, int* lps) {   int len = 0;   lps[0] = 0;   int i = 1;   while (i < M) {     if (pat[i] == pat[len]) {       len++;       lps[i] = len;       i++;     } else { // (pat[i] != pat[len])       if (len != 0) {         _________; // Line to complete       } else { // if (len == 0)         lps[i] = 0;         i++;       }     }   } }Solution
• Concept: The Knuth-Morris-Pratt (KMP) algorithm uses a precomputed Longest Proper Prefix Suffix (LPS) array to efficiently search for a pattern within a text. The LPS array lps[i] stores the length of the longest proper prefix of pat[0...i] that is also a suffix of pat[0...i]. • Code Analysis: o The while loop builds the lps array. o When pat[i] == pat[len], len is incremented, and lps[i] is set to the new len. o When pat[i] != pat[len] and len != 0, it means the current character pat[i] does not extend the current prefix-suffix match. We need to "fall back" to a shorter possible prefix-suffix match. • Explanation of Correct Answer (B): len = lps[len - 1]; o When pat[i] does not match pat[len], and len is not 0, it means we had a prefix of length len that matched a suffix. Since pat[i] doesn't extend this match, we look for the next shortest proper prefix of pat[0...len-1] that is also a suffix of pat[0...len-1]. The length of this next shortest match is precisely stored in lps[len - 1]. By setting len = lps[len - 1], we effectively shift our comparison point in the pattern to try and find a shorter matching prefix.
The length of the each side of an equilateral triangle is 21. The area of incircle, (cm 2 ) is
In ∆ABC , G is the centroid , AB = 5 cm, BC= 8 cm and AC = 7 cm , find GD, where D is the mid-point of BC?
Find area of a sector of radius 14 cm with central angle 90°. (π = 22/7)
What will be inradius of an equilateral triangle of side 4 cm?
In the figure given below, AC = 16 cm and BF = 5 cm. If AE:CE = 5:3, then find the perimeter of ΔABC.
If in a ΔABC, AD is internal angle bisector & D is a point on BC, AB = 7 cm, BC = 9cm then what is BD:CD?
If the volume of a cube is 64cm³, then the diagonal of cube is
Length and breadth of a rectangle are 8 cm and 6 cm respectively. The rectangle is cut on its four vertices such that the resulting figure is a regular ...
In ΔABC, D is a point on BC such that AD bisects ∠A. If BD = 6 cm, DC = 9 cm, find AB/AC.
Determine the difference between an angle and its complementary angle, given that the angle is two-thirds of its complement.