Bird
Raised Fist0
DSA Cprogramming~5 mins

Count Words with Given Prefix in DSA C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the problem 'Count Words with Given Prefix' ask you to do?
It asks you to find how many words in a list start with a specific prefix.
Click to reveal answer
beginner
Why is checking prefixes useful in word problems?
Because prefixes help group words that start the same way, making it easier to count or search them.
Click to reveal answer
beginner
What simple method can you use to count words with a given prefix in C?
Loop through each word and check if the start of the word matches the prefix using string comparison.
Click to reveal answer
intermediate
What C function helps compare the start of two strings?
The function strncmp() compares the first n characters of two strings, useful for prefix checking.
Click to reveal answer
intermediate
What is the time complexity of counting words with a given prefix by checking each word?
It is O(n * m), where n is the number of words and m is the length of the prefix.
Click to reveal answer
Which C function is best to check if a word starts with a given prefix?
Astrlen()
Bstrcmp()
Cstrcat()
Dstrncmp()
If you have 5 words and a prefix of length 3, what is the worst-case time complexity to count matches?
AO(15)
BO(3)
CO(5)
DO(1)
What does the prefix mean in the context of words?
AThe starting letters of a word
BThe ending letters of a word
CThe middle letters of a word
DAny letters inside a word
Which of these is NOT a good way to count words with a prefix?
ACheck each word's start with the prefix
BCheck if prefix is inside the word anywhere
CLoop through all words
DUse strncmp() to compare prefix
What should you do if the prefix is longer than the word?
ACompare anyway
BCount the word as matching
CSkip the word because it can't match
DReverse the word and compare
Explain how you would count words starting with a given prefix using C strings.
Think about checking the start of each word carefully.
You got /4 concepts.
    Describe the importance of prefix length when comparing words for prefix matching.
    Focus on how many characters to compare.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the problem "Count Words with Given Prefix" ask you to do?
      easy
      A. Count how many words in a list start with a given prefix
      B. Count the total number of characters in all words
      C. Find the longest word in the list
      D. Sort the words alphabetically

      Solution

      1. Step 1: Understand the problem statement

        The problem asks to find how many words start with a specific prefix string.
      2. Step 2: Identify the key operation

        We need to check each word and count those that begin with the given prefix.
      3. Final Answer:

        Count how many words in a list start with a given prefix -> Option A
      4. Quick Check:

        Count words starting with prefix = Count how many words in a list start with a given prefix [OK]
      Hint: Look for words starting exactly with the prefix [OK]
      Common Mistakes:
      • Counting total characters instead of words
      • Looking for words containing prefix anywhere
      • Sorting words instead of counting
      2. Which of the following C code snippets correctly checks if a word starts with a given prefix prefix?
      easy
      A. strcmp(word, prefix) == 0
      B. strncmp(word, prefix, strlen(prefix)) == 0
      C. strstr(word, prefix) != NULL
      D. strlen(word) == strlen(prefix)

      Solution

      1. Step 1: Understand string comparison functions

        strncmp compares first n characters; here n = length of prefix.
      2. Step 2: Check which code confirms prefix match

        strncmp(word, prefix, strlen(prefix)) == 0 means word starts with prefix exactly.
      3. Final Answer:

        strncmp(word, prefix, strlen(prefix)) == 0 -> Option B
      4. Quick Check:

        strncmp with prefix length = 0 means prefix match [OK]
      Hint: Use strncmp with prefix length to check start [OK]
      Common Mistakes:
      • Using strcmp which requires full string match
      • Using strstr without checking start position
      • Comparing lengths only
      3. What is the output of the following C code?
      char *words[] = {"apple", "app", "application", "banana"};
      char prefix[] = "app";
      int count = 0;
      for (int i = 0; i < 4; i++) {
        if (strncmp(words[i], prefix, strlen(prefix)) == 0) {
          count++;
        }
      }
      printf("%d\n", count);
      medium
      A. 4
      B. 2
      C. 1
      D. 3

      Solution

      1. Step 1: Check each word against prefix "app"

        "apple" starts with "app" (yes), "app" (yes), "application" (yes), "banana" (no).
      2. Step 2: Count matching words

        Three words match the prefix, so count = 3.
      3. Final Answer:

        3 -> Option D
      4. Quick Check:

        Words starting with "app" = 3 [OK]
      Hint: Count words where strncmp returns 0 for prefix length [OK]
      Common Mistakes:
      • Counting words that contain prefix anywhere
      • Off-by-one errors in loop
      • Incorrect prefix length in strncmp
      4. Find the bug in this C code that counts words starting with prefix prefix:
      int countWords(char *words[], int n, char *prefix) {
        int count = 0;
        for (int i = 0; i <= n; i++) {
          if (strncmp(words[i], prefix, strlen(prefix)) == 0) {
            count++;
          }
        }
        return count;
      }
      medium
      A. Initialize count to 1 instead of 0
      B. Use strcmp instead of strncmp
      C. Loop condition should be i < n, not i <= n
      D. strlen(prefix) should be replaced with strlen(words[i])

      Solution

      1. Step 1: Analyze loop boundary

        Loop runs from i = 0 to i <= n, which accesses words[n] (out of bounds).
      2. Step 2: Correct loop condition

        Change to i < n to avoid accessing beyond array size.
      3. Final Answer:

        Loop condition should be i < n, not i <= n -> Option C
      4. Quick Check:

        Array index must be less than size [OK]
      Hint: Use i < n for array loops to avoid overflow [OK]
      Common Mistakes:
      • Using <= instead of < in loops
      • Confusing strcmp and strncmp usage
      • Wrong length argument in strncmp
      5. You have a list of words and want to count how many start with prefix pre. Which approach is best to optimize counting if you must do many prefix queries efficiently?
      hard
      A. Build a trie (prefix tree) from words and count nodes matching prefix
      B. Use strncmp on each word for every query
      C. Sort words and use binary search for prefix range
      D. Store words in a hash set and check prefix membership

      Solution

      1. Step 1: Understand multiple prefix queries

        Checking each word with strncmp repeatedly is slow for many queries.
      2. Step 2: Choose data structure for fast prefix counting

        Trie stores words by prefixes, allowing quick count of words with given prefix.
      3. Step 3: Compare alternatives

        Binary search helps but trie is more direct for prefix counts; hash set doesn't support prefix queries well.
      4. Final Answer:

        Build a trie (prefix tree) from words and count nodes matching prefix -> Option A
      5. Quick Check:

        Trie = fast prefix count [OK]
      Hint: Use trie for fast multiple prefix queries [OK]
      Common Mistakes:
      • Using linear search for many queries
      • Ignoring trie benefits for prefix problems
      • Using hash set which doesn't support prefix search
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard