Bird
Raised Fist0
DSA C#programming~10 mins

Count Words with Given Prefix in DSA C# - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if a word starts with the given prefix.

DSA C#
bool StartsWithPrefix(string word, string prefix) {
    return word.[1](prefix);
}
Drag options to blanks, or click blank then click option'
AEndsWith
BContains
CEquals
DStartsWith
Attempts:
3 left
💡 Hint
Common Mistakes
Using Contains instead of StartsWith causes incorrect matches.
Using EndsWith checks the suffix, not the prefix.
2fill in blank
medium

Complete the code to count how many words start with the given prefix.

DSA C#
int CountPrefixWords(List<string> words, string prefix) {
    int count = 0;
    foreach (string word in words) {
        if (word.[1](prefix)) {
            count++;
        }
    }
    return count;
}
Drag options to blanks, or click blank then click option'
AEndsWith
BStartsWith
CContains
DEquals
Attempts:
3 left
💡 Hint
Common Mistakes
Using Contains counts words that have the prefix anywhere, not just at the start.
Using EndsWith counts words ending with the prefix.
3fill in blank
hard

Fix the error in the code to correctly count words with the given prefix ignoring case.

DSA C#
int CountPrefixIgnoreCase(List<string> words, string prefix) {
    int count = 0;
    foreach (string word in words) {
        if (word.[1](prefix, StringComparison.OrdinalIgnoreCase)) {
            count++;
        }
    }
    return count;
}
Drag options to blanks, or click blank then click option'
AStartsWith
BContains
CEndsWith
DEquals
Attempts:
3 left
💡 Hint
Common Mistakes
Using Contains with StringComparison is invalid.
Using EndsWith ignores the prefix position.
4fill in blank
hard

Fill both blanks to create a dictionary that maps each prefix to the count of words starting with it.

DSA C#
Dictionary<string, int> CountWordsByPrefix(List<string> words, List<string> prefixes) {
    var result = new Dictionary<string, int>();
    foreach (string prefix in prefixes) {
        int count = words.[1](word => word.[2](prefix));
        result[prefix] = count;
    }
    return result;
}
Drag options to blanks, or click blank then click option'
ACount
BStartsWith
CWhere
DContains
Attempts:
3 left
💡 Hint
Common Mistakes
Using Where returns a filtered list, not a count.
Using Contains counts words with prefix anywhere.
5fill in blank
hard

Fill all three blanks to create a method that returns a dictionary of prefix counts ignoring case.

DSA C#
Dictionary<string, int> CountWordsByPrefixIgnoreCase(List<string> words, List<string> prefixes) {
    var result = new Dictionary<string, int>();
    foreach (string prefix in prefixes) {
        int count = words.[1](word => word.[2](prefix, [3]));
        result[prefix] = count;
    }
    return result;
}
Drag options to blanks, or click blank then click option'
ACount
BStartsWith
CStringComparison.OrdinalIgnoreCase
DContains
Attempts:
3 left
💡 Hint
Common Mistakes
Using Contains instead of StartsWith.
Not specifying StringComparison causes case-sensitive matching.

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 specific prefix
B. Find the longest word in a list
C. Sort words alphabetically
D. Replace the prefix in all words with another string

Solution

  1. Step 1: Understand the problem statement

    The problem asks to count words that begin with a given prefix, not to sort or replace words.
  2. Step 2: Identify the key action

    Counting words starting with the prefix is the main task.
  3. Final Answer:

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

    Count words with prefix = Count how many words in a list start with a specific prefix [OK]
Hint: Focus on words starting with prefix, not other operations [OK]
Common Mistakes:
  • Confusing counting with sorting
  • Thinking the task is to replace prefixes
  • Ignoring the prefix condition
2. Which of the following C# code snippets correctly checks if a string word starts with a prefix prefix?
easy
A. if (word == prefix) { /* do something */ }
B. if (word.Contains(prefix)) { /* do something */ }
C. if (word.EndsWith(prefix)) { /* do something */ }
D. if (word.StartsWith(prefix)) { /* do something */ }

Solution

  1. Step 1: Recall string methods in C#

    The method StartsWith checks if a string begins with a given substring.
  2. Step 2: Compare options

    Contains checks anywhere in the string, EndsWith checks the end, and == checks exact equality.
  3. Final Answer:

    if (word.StartsWith(prefix)) { /* do something */ } -> Option D
  4. Quick Check:

    Use StartsWith to check prefix [OK]
Hint: Use StartsWith method to check prefix in C# strings [OK]
Common Mistakes:
  • Using Contains instead of StartsWith
  • Checking equality instead of prefix
  • Using EndsWith which checks suffix
3. What is the output of the following C# code?
string[] words = {"apple", "app", "application", "banana"};
string prefix = "app";
int count = 0;
foreach (var word in words) {
    if (word.StartsWith(prefix)) {
        count++;
    }
}
Console.WriteLine(count);
medium
A. 2
B. 1
C. 3
D. 4

Solution

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

    Words: "apple" (yes), "app" (yes), "application" (yes), "banana" (no).
  2. Step 2: Count matches

    Three words start with "app", so count = 3.
  3. Final Answer:

    3 -> Option C
  4. Quick Check:

    Words starting with "app" = 3 [OK]
Hint: Count words starting with prefix by checking each word [OK]
Common Mistakes:
  • Counting only exact matches
  • Including words that contain prefix but don't start with it
  • Off-by-one counting errors
4. The following code is intended to count words starting with a prefix but gives wrong output. What is the error?
string[] words = {"cat", "car", "dog", "cart"};
string prefix = "car";
int count = 0;
for (int i = 0; i <= words.Length; i++) {
    if (words[i].StartsWith(prefix)) {
        count++;
    }
}
Console.WriteLine(count);
medium
A. The loop condition should be i < words.Length instead of <=.
B. The prefix variable is incorrect.
C. The StartsWith method is used wrongly.
D. The count variable should be initialized inside the loop.

Solution

  1. Step 1: Analyze the for loop condition

    The loop runs from i = 0 to i <= words.Length, which causes an index out of range error because valid indices are 0 to words.Length - 1.
  2. Step 2: Correct the loop condition

    Change condition to i < words.Length to avoid accessing invalid index.
  3. Final Answer:

    The loop condition should be i < words.Length instead of <=. -> Option A
  4. Quick Check:

    Loop index must be less than array length [OK]
Hint: Use i < array.Length to avoid index errors in loops [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Reinitializing count inside loop
  • Misusing StartsWith method
5. Given a list of words ["tree", "trie", "trigger", "trip", "try", "matrix"] and prefix "tri", which C# code snippet correctly counts the words starting with the prefix and prints the count?
hard
A. int count = 0; foreach(var word in words) { if(word.Contains(prefix)) count++; } Console.WriteLine(count);
B. int count = words.Count(word => word.StartsWith(prefix)); Console.WriteLine(count);
C. int count = 0; for(int i=0; i<=words.Length; i++) { if(words[i].StartsWith(prefix)) count++; } Console.WriteLine(count);
D. int count = words.Length; Console.WriteLine(count);

Solution

  1. Step 1: Understand the requirement

    We need to count words starting exactly with prefix "tri".
  2. Step 2: Evaluate each option

    int count = words.Count(word => word.StartsWith(prefix)); Console.WriteLine(count); uses LINQ Count with StartsWith correctly.
    int count = 0; foreach(var word in words) { if(word.Contains(prefix)) count++; } Console.WriteLine(count); uses Contains which counts words containing prefix anywhere.
    int count = 0; for(int i=0; i<=words.Length; i++) { if(words[i].StartsWith(prefix)) count++; } Console.WriteLine(count); has loop with <= causing index error.
    int count = words.Length; Console.WriteLine(count); counts all words ignoring prefix.
  3. Final Answer:

    int count = words.Count(word => word.StartsWith(prefix)); Console.WriteLine(count); -> Option B
  4. Quick Check:

    Use LINQ Count with StartsWith for prefix count [OK]
Hint: Use LINQ Count with StartsWith for concise prefix counting [OK]
Common Mistakes:
  • Using Contains instead of StartsWith
  • Loop index out of range errors
  • Counting all words without prefix check
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