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.
Which of the following was the first city planned by the Mughal Empire?
India's new Foreign Trade Policy 2023 has set a target of reaching 2 trillion dollars export by
What is the maximum number of hours that an adult worker can work in a factory under the Factories Act, 1948?
Match List-I with List-II and select the correct answer using the codes given below the lists:
When are current liabilities payable?
Who among the following discovered Proton?
It is the total value of all finished goods and services produced by a country's citizens in a given financial year, irrespective of their location, it is?
Who among the following is the author of 'Gandhi as Mahatma'?
Which tribal community specializes in the GI-tagged handicraft product called Dindori Painting in Madhya Pradesh?