Pattern matching (KMP, Rabin-Karp) MCQs

By: Prof. Dr. Fazal Rehman Shamil | Last updated: September 20, 2024

What is the main purpose of the Knuth-Morris-Pratt (KMP) algorithm?
A) To sort an array
B) To find a substring within a string
C) To merge two sorted arrays
D) To compute the longest common subsequence
Answer: B) To find a substring within a string

Which of the following best describes the Rabin-Karp algorithm?
A) A linear time pattern matching algorithm
B) A brute-force string matching algorithm
C) A hashing-based pattern matching algorithm
D) A divide-and-conquer algorithm
Answer: C) A hashing-based pattern matching algorithm

What is the worst-case time complexity of the KMP algorithm?
A) O(n)
B) O(m)
C) O(n + m)
D) O(n * m)
Answer: C) O(n + m)

In the KMP algorithm, what does the “partial match table” help to achieve?
A) To optimize the search time
B) To store hash values of the pattern
C) To keep track of the indices of matches
D) To sort the input strings
Answer: A) To optimize the search time

What is the main advantage of using the Rabin-Karp algorithm?
A) Simplicity of implementation
B) Use of a single hash function for all comparisons
C) Constant time complexity
D) Works better with small alphabets
Answer: B) Use of a single hash function for all comparisons

Which of the following is true about the Rabin-Karp algorithm?
A) It can only match fixed-length patterns
B) It uses rolling hash for efficiency
C) It has no risk of hash collisions
D) It is not suitable for large texts
Answer: B) It uses rolling hash for efficiency

What is the space complexity of the KMP algorithm?
A) O(1)
B) O(n)
C) O(m)
D) O(n + m)
Answer: D) O(n + m)

What is a hash collision in the context of the Rabin-Karp algorithm?
A) When two different patterns produce the same hash value
B) When the search time increases
C) When the algorithm fails to find a match
D) When the input strings are too long
Answer: A) When two different patterns produce the same hash value

Which of the following algorithms guarantees a worst-case linear time complexity?
A) Brute-force string matching
B) KMP algorithm
C) Rabin-Karp algorithm
D) Naive string matching
Answer: B) KMP algorithm

How does the KMP algorithm avoid unnecessary comparisons?
A) By hashing the pattern
B) By using a queue
C) By utilizing the partial match table
D) By sorting the pattern
Answer: C) By utilizing the partial match table

In Rabin-Karp, how is the new hash value computed from the previous hash value?
A) By incrementing the previous value
B) By adding the new character’s value
C) By using a rolling hash technique
D) By hashing the entire substring again
Answer: C) By using a rolling hash technique

What is the main disadvantage of the Rabin-Karp algorithm?
A) High space complexity
B) Difficulty in handling long patterns
C) Possibility of hash collisions
D) Lack of optimization for small alphabets
Answer: C) Possibility of hash collisions

Which of the following is a key feature of the KMP algorithm?
A) It only works with lowercase letters
B) It preprocesses the pattern before searching
C) It requires additional memory for the text
D) It can only be used for fixed-length patterns
Answer: B) It preprocesses the pattern before searching

In the context of the KMP algorithm, what does the term “backtracking” refer to?
A) Moving back to a previous character
B) Using previously computed information to skip unnecessary comparisons
C) Resetting the entire search process
D) Repeating the search for the entire text
Answer: B) Using previously computed information to skip unnecessary comparisons

What is the time complexity of the Rabin-Karp algorithm in the average case?
A) O(n)
B) O(n * m)
C) O(n + m)
D) O(m)
Answer: A) O(n)

Which pattern matching algorithm is more efficient for multiple pattern matching?
A) KMP
B) Rabin-Karp
C) Naive string matching
D) Boyer-Moore
Answer: B) Rabin-Karp

What type of algorithm is KMP classified as?
A) Brute force
B) Greedy
C) Dynamic programming
D) String matching
Answer: D) String matching

What is the length of the partial match table in KMP?
A) Equal to the length of the text
B) Equal to the length of the pattern
C) Twice the length of the pattern
D) Variable depending on input
Answer: B) Equal to the length of the pattern

Which of the following statements is true regarding the rolling hash in Rabin-Karp?
A) It calculates a hash value from scratch each time
B) It allows quick re-calculation of hash values for overlapping substrings
C) It is not suitable for dynamic patterns
D) It requires additional libraries to implement
Answer: B) It allows quick re-calculation of hash values for overlapping substrings

In KMP, when a mismatch occurs after some matches, what does the algorithm utilize?
A) A new search
B) The length of the longest prefix which is also a suffix
C) A different pattern
D) A random character
Answer: B) The length of the longest prefix which is also a suffix

What is the primary goal of pattern matching algorithms?
A) To sort data
B) To find occurrences of a substring within a larger string
C) To manipulate string data
D) To encode data efficiently
Answer: B) To find occurrences of a substring within a larger string

Which algorithm would likely perform better on very large texts with many potential matches?
A) KMP
B) Rabin-Karp
C) Naive search
D) Boyer-Moore
Answer: B) Rabin-Karp

How is the hash function chosen in the Rabin-Karp algorithm?
A) It must be a prime number
B) It can be any arbitrary function
C) It is predefined in the algorithm
D) It is a constant value
Answer: A) It must be a prime number

What happens if a hash collision occurs in Rabin-Karp?
A) The algorithm stops
B) The algorithm re-calculates the hash
C) The algorithm verifies characters to check for a match
D) The hash value is discarded
Answer: C) The algorithm verifies characters to check for a match

In the KMP algorithm, how are the values in the partial match table calculated?
A) Randomly
B) Based on the text
C) From the pattern itself
D) By a brute-force comparison
Answer: C) From the pattern itself

What does the term “substring” refer to in string algorithms?
A) A larger string containing another
B) A sequence of characters within a string
C) A fixed-length segment of memory
D) A collection of characters
Answer: B) A sequence of characters within a string

Which of the following is a benefit of using KMP over brute-force methods?
A) It requires less memory
B) It avoids unnecessary comparisons
C) It is simpler to understand
D) It can only be used for fixed-length patterns
Answer: B) It avoids unnecessary comparisons

How does Rabin-Karp handle varying pattern lengths?
A) It only works for fixed lengths
B) It computes different hash functions
C) It adjusts the hash value dynamically
D) It cannot handle varying lengths
Answer: C) It adjusts the hash value dynamically

What is the primary drawback of KMP in practical applications?
A) High space complexity
B) Slow performance on small texts
C) Complexity of implementation
D) Inefficiency in multiple pattern searches
Answer: C) Complexity of implementation

Which of the following scenarios is most suitable for the Rabin-Karp algorithm?
A) Searching for a single short pattern
B) Searching for multiple patterns simultaneously
C) Sorting a list of strings
D) Reversing a string
Answer: B) Searching for multiple patterns simultaneously

What is the typical use case for the KMP algorithm?
A) Sorting data
B) Searching for a single substring in a long text
C) Encrypting data
D) Compressing strings
Answer: B) Searching for a single substring in a long text

 

Data Structures MCQs

Basic Concepts

  1. Introduction to Data Structures
  2. Complexity Analysis MCQs

Linear Data Structures MCQs

  1. Arrays MCQs
  2. Linked Lists MCQs
  3. Stacks MCQs
  4. Queues MCQs

Non-Linear Data Structures MCQs

  1. Trees MCQs
  2. Heaps MCQs
  3. Graphs MCQs

Hashing MCQs MCQs

  1. Hash Tables

Sorting and Searching Algorithms MCQs 

  1. Sorting Algorithms MCQs
  2. Searching Algorithms MCQs

Miscellaneous

  1. Memory Management in data structures MCQs
  2. String Manipulation Algorithms MCQs
  1. Data Structures MCQs 1
  2. Data Structures MCQs 2
  3. Data Structures MCQs 3
  4. Data Structures MCQs 4
  5. Data Structures MCQs 5
  6. Stacks Solved MCQs
  7. Queues MCQs
  8. pointer mcqs
  9. Array MCQs