Bird
Raised Fist0
DSA Goprogramming~10 mins

Why Strings Are a Data Structure Not Just Text in DSA Go - Test Your Knowledge

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

Complete the code to get the length of the string.

DSA Go
length := len([1])
Drag options to blanks, or click blank then click option'
Atext
Bstr
C"hello"
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using a number instead of the string variable.
Using quotes around the variable name.
2fill in blank
medium

Complete the code to access the first character of the string.

DSA Go
firstChar := [1][0]
Drag options to blanks, or click blank then click option'
A0
B"text"
Ctext
Dlen(text)
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around the variable name.
Using the length function instead of the variable.
3fill in blank
hard

Fix the error in the code to convert the string to a slice of bytes.

DSA Go
bytes := []byte([1])
Drag options to blanks, or click blank then click option'
Atext
B"text"
C5
Dlen(text)
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a number instead of the string.
Passing the string literal with quotes.
4fill in blank
hard

Fill both blanks to create a substring from index 1 to 3.

DSA Go
substring := [1][[2]:4]
Drag options to blanks, or click blank then click option'
Atext
B1
C0
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong start index.
Using quotes around the variable name.
5fill in blank
hard

Fill all three blanks to check if the string length is greater than 5 and print a message.

DSA Go
if len([1]) [2] [3] {
    fmt.Println("Long string")
}
Drag options to blanks, or click blank then click option'
Atext
B>
C5
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong comparison operator.
Using a number instead of the variable name.

Practice

(1/5)
1. Why are strings considered a data structure and not just plain text?
easy
A. Because strings are only used for displaying text on screen
B. Because strings only contain letters and no other characters
C. Because strings are always immutable and cannot be changed
D. Because strings store characters in a specific order and allow access by position

Solution

  1. Step 1: Understand what a data structure is

    A data structure organizes data so it can be accessed and modified efficiently. Strings store characters in order, which fits this definition.
  2. Step 2: Analyze string properties

    Strings allow access to each character by its position (index), showing they have structure beyond plain text.
  3. Final Answer:

    Because strings store characters in a specific order and allow access by position -> Option D
  4. Quick Check:

    Strings = ordered characters [OK]
Hint: Strings have order and indexing, so they are data structures [OK]
Common Mistakes:
  • Thinking strings only contain letters
  • Assuming strings are just for display
  • Believing strings cannot be changed
2. Which of the following is the correct way to get the length of a string s in Go?
easy
A. size(s)
B. length(s)
C. len(s)
D. s.length()

Solution

  1. Step 1: Recall Go syntax for string length

    In Go, the built-in function len() returns the length of strings and slices.
  2. Step 2: Check other options

    Functions like length(), s.length(), and size() are not valid in Go for strings.
  3. Final Answer:

    len(s) -> Option C
  4. Quick Check:

    Use len() for string length in Go [OK]
Hint: Use len() to get string length in Go [OK]
Common Mistakes:
  • Using s.length() like in other languages
  • Trying length() function which doesn't exist in Go
  • Using size() which is invalid for strings
3. What will be the output of this Go code?
package main
import "fmt"
func main() {
  s := "hello"
  fmt.Println(string(s[1]))
}
medium
A. e
B. 104
C. h
D. Error

Solution

  1. Step 1: Understand string indexing in Go

    Indexing a string like s[1] returns a byte (uint8) representing the ASCII code of the character.
  2. Step 2: Analyze the code output

    string(s[1]) converts the byte to a string of length 1, so it prints 'e'.
  3. Final Answer:

    e -> Option A
  4. Quick Check:

    string(s[1]) = 'e' [OK]
Hint: s[index] is byte; string(s[index]) converts to char [OK]
Common Mistakes:
  • Thinking s[1] prints ASCII number
  • Expecting error due to indexing
  • Confusing byte and string conversion
4. Identify the error in this Go code snippet:
package main
import "fmt"
func main() {
  s := "world"
  s[0] = 'W'
  fmt.Println(s)
}
medium
A. Strings are immutable; cannot assign to s[0]
B. Missing import for fmt package
C. Incorrect syntax for printing string
D. No error; code runs fine

Solution

  1. Step 1: Understand string mutability in Go

    Strings in Go are immutable, meaning you cannot change characters by assigning to an index.
  2. Step 2: Analyze the code error

    The line s[0] = 'W' tries to modify the first character, which causes a compile-time error.
  3. Final Answer:

    Strings are immutable; cannot assign to s[0] -> Option A
  4. Quick Check:

    Strings immutable = no s[index] assignment [OK]
Hint: Strings cannot be changed by index assignment [OK]
Common Mistakes:
  • Trying to modify string characters directly
  • Ignoring immutability of strings
  • Assuming code runs without error
5. Given the string s := "GoLang", which code snippet correctly reverses the string and prints it in Go?
hard
A. s = s[::-1]; fmt.Println(s)
B. for i := len(s)-1; i >= 0; i-- { fmt.Print(string(s[i])) }
C. fmt.Println(reverse(s)) // reverse is built-in
D. for i := 0; i < len(s); i++ { fmt.Print(s[len(s)-i]) }

Solution

  1. Step 1: Check each option for correctness

    for i := len(s)-1; i >= 0; i-- { fmt.Print(string(s[i])) } uses a for loop from the last index to zero, printing each character converted from byte to string. This correctly reverses the string.
  2. Step 2: Analyze other options

    fmt.Println(reverse(s)) // reverse is built-in is invalid because Go has no built-in reverse function. s = s[::-1]; fmt.Println(s) uses Python slice syntax, invalid in Go. for i := 0; i < len(s); i++ { fmt.Print(s[len(s)-i]) } has an off-by-one error accessing s[len(s)-i], which causes runtime error.
  3. Final Answer:

    for i := len(s)-1; i >= 0; i-- { fmt.Print(string(s[i])) } -> Option B
  4. Quick Check:

    Reverse string with backward loop [OK]
Hint: Loop backward from len(s)-1 to 0 to reverse string [OK]
Common Mistakes:
  • Using Python slice syntax in Go
  • Assuming built-in reverse function exists
  • Off-by-one errors in indexing
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