📖 Scenario: You are building a simple tool to help a bookstore find how many book titles start with a certain prefix. This helps the store quickly find books related to a topic or author.
🎯 Goal: Build a program that counts how many words in a list start with a given prefix.
📋 What You'll Learn
Create a list of words with exact values
Create a string variable for the prefix to search
Use a loop to count how many words start with the prefix
Print the count as the final output
💡 Why This Matters
🌍 Real World
Searching for words or titles starting with a prefix is common in search engines, autocomplete features, and filtering lists.
💼 Career
Understanding how to filter and count items based on conditions is a key skill in programming and data processing jobs.
Progress0 / 4 steps
1
Create the list of words
Create a slice of strings called words with these exact values: "apple", "app", "application", "banana", "apricot"
DSA Go
Hint
Use []string{} to create a slice of strings with the exact words.
2
Create the prefix variable
Create a string variable called prefix and set it to "app"
DSA Go
Hint
Use prefix := "app" to create the prefix variable.
3
Count words starting with the prefix
Create an integer variable called count and set it to 0. Use a for loop with variable _, word to iterate over words. Inside the loop, use strings.HasPrefix(word, prefix) to check if the word starts with the prefix. If yes, increase count by 1.
DSA Go
Hint
Use count := 0 before the loop. Use for _, word := range words to loop. Use if strings.HasPrefix(word, prefix) to check prefix.
4
Print the count
Use fmt.Println(count) to print the number of words starting with the prefix.
DSA Go
Hint
Use fmt.Println(count) to show the result.
Practice
(1/5)
1. What does the problem "Count Words with Given Prefix" ask you to do?
easy
A. Count the total number of characters in all words
B. Find the longest word in a list
C. Count how many words in a list start with a specific prefix
D. Sort the words alphabetically
Solution
Step 1: Understand the problem statement
The problem asks to find how many words begin with a given prefix string.
Step 2: Identify the key operation
We need to check each word and count those that start with the prefix.
Final Answer:
Count how many words in a list start with a specific prefix -> Option C
Quick Check:
Counting words by prefix = Count how many words in a list start with a specific prefix [OK]
Hint: Look for words starting exactly with the prefix [OK]
Common Mistakes:
Confusing prefix with substring anywhere in word
Counting total words instead of filtered ones
Ignoring case sensitivity if required
2. Which of the following Go code snippets correctly checks if a word starts with a given prefix pref?
easy
A. strings.HasPrefix(word, pref)
B. strings.Contains(word, pref)
C. word[:len(pref)] == pref
D. word == pref
Solution
Step 1: Recall Go standard library functions
strings.HasPrefix(word, pref) returns true if word starts with pref.
Step 2: Compare other options
strings.Contains checks anywhere, slicing may panic if prefix longer, equality checks full word.
Final Answer:
strings.HasPrefix(word, pref) -> Option A
Quick Check:
Use HasPrefix for prefix check [OK]
Hint: Use strings.HasPrefix for safe prefix check [OK]
Common Mistakes:
Using strings.Contains which checks anywhere in word
Slicing without length check causing runtime panic
Comparing whole word instead of prefix
3. What is the output of the following Go code?
package main
import (
"fmt"
"strings"
)
func countPrefix(words []string, prefix string) int {
count := 0
for _, w := range words {
if strings.HasPrefix(w, prefix) {
count++
}
}
return count
}
func main() {
words := []string{"apple", "app", "application", "banana", "apply"}
fmt.Println(countPrefix(words, "app"))
}
medium
A. 4
B. 2
C. 3
D. 5
Solution
Step 1: Identify words starting with "app"
Words: "apple", "app", "application", "banana", "apply". "banana" does not start with "app".
Hint: Count words starting exactly with prefix using HasPrefix [OK]
Common Mistakes:
Counting "banana" incorrectly
Off-by-one error in counting
Misreading prefix length
4. The following Go code is intended to count words starting with a prefix but causes a runtime error. What is the error?
func countPrefix(words []string, prefix string) int {
count := 0
for _, w := range words {
if w[:len(prefix)] == prefix {
count++
}
}
return count
}
medium
A. No error, code works fine
B. Index out of range panic if word shorter than prefix
C. Logical error: counts words containing prefix anywhere
D. Syntax error due to missing import
Solution
Step 1: Analyze slicing operation
The code slices w[:len(prefix)] without checking if w is long enough.
Step 2: Identify runtime error cause
If w is shorter than prefix, slicing causes index out of range panic.
Final Answer:
Index out of range panic if word shorter than prefix -> Option B
Quick Check:
Slicing without length check causes panic [OK]
Hint: Check word length before slicing prefix [OK]
Common Mistakes:
Ignoring length check before slicing
Assuming code compiles without imports
Confusing prefix check with substring check
5. You have a list of words and want to count how many start with each prefix from a list of prefixes. Which approach is best for efficient counting in Go?
hard
A. Use strings.Contains to check prefix in each word
B. For each prefix, loop over all words and count matches
C. Sort words and use binary search for each prefix
D. Build a trie from words, then query counts for each prefix
Solution
Step 1: Understand the problem scale
Counting for many prefixes over many words needs efficiency.
Step 2: Compare approaches
Looping over all words for each prefix is slow (O(P*W)). Sorting + binary search helps but trie allows prefix counting efficiently.
Step 3: Choose best data structure
Trie stores words by prefix, enabling fast prefix count queries.
Final Answer:
Build a trie from words, then query counts for each prefix -> Option D
Quick Check:
Trie enables efficient prefix counting [OK]
Hint: Use trie for fast prefix count queries [OK]
Common Mistakes:
Using nested loops causing slow performance
Using strings.Contains which is incorrect for prefix
Ignoring data structure benefits
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.