Bird
Raised Fist0
DSA Typescriptprogramming~10 mins

String Traversal and Character Access in DSA Typescript - Interactive Practice

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

Complete the code to print each character of the string word using a for loop.

DSA Typescript
const word = "hello";
for (let i = 0; i < word.length; i++) {
  console.log(word[1]);
}
Drag options to blanks, or click blank then click option'
A<i>
B[i]
C{i}
D(i)
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses instead of square brackets to access characters.
Using curly braces or angle brackets which are invalid here.
2fill in blank
medium

Complete the code to print the last character of the string text.

DSA Typescript
const text = "typescript";
console.log(text[1]);
Drag options to blanks, or click blank then click option'
A[text.length - 1]
B[text.length]
C[text.length + 1]
D[0]
Attempts:
3 left
💡 Hint
Common Mistakes
Using text.length as index which is out of bounds.
Using 0 which gives the first character, not the last.
3fill in blank
hard

Fix the error in the code to correctly print each character in uppercase.

DSA Typescript
const name = "code";
for (let i = 0; i < name.length; i++) {
  console.log(name[1].toUpperCase());
}
Drag options to blanks, or click blank then click option'
A[i].toUpperCase()
B(i)
C[i]()
D[i]
Attempts:
3 left
💡 Hint
Common Mistakes
Calling toUpperCase without parentheses.
Using parentheses to access characters instead of square brackets.
4fill in blank
hard

Fill both blanks to create a loop that prints characters at even indices only.

DSA Typescript
const phrase = "algorithm";
for (let [1] = 0; [2] < phrase.length; [1] += 2) {
  console.log(phrase[[1]]);
}
Drag options to blanks, or click blank then click option'
Ai
Bj
Ck
Dm
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names in the loop condition and increment.
Incrementing by 1 instead of 2.
5fill in blank
hard

Fill all three blanks to create a function that returns the first character of a string in uppercase.

DSA Typescript
function firstCharUppercase(str: string): string {
  return str[1].toUpperCase() + str[2];
}
Drag options to blanks, or click blank then click option'
A[0]
Bslice(1)
Csubstring(1)
D[1]
Attempts:
3 left
💡 Hint
Common Mistakes
Using substring(1) instead of slice(1) (both work but only one is correct here).
Using [1] which gets only the second character.

Practice

(1/5)
1. What does the expression str[2] return when str = "hello"?
easy
A. The character 'e'
B. The character 'l'
C. The substring 'll'
D. An error because strings are not indexable

Solution

  1. Step 1: Understand string indexing

    Strings in TypeScript can be accessed by index starting at 0, so index 2 refers to the third character.
  2. Step 2: Identify the character at index 2 in "hello"

    The characters are: h(0), e(1), l(2), l(3), o(4). So index 2 is 'l'.
  3. Final Answer:

    The character 'l' -> Option B
  4. Quick Check:

    str[2] = 'l' [OK]
Hint: Remember string index starts at 0 [OK]
Common Mistakes:
  • Thinking index starts at 1
  • Confusing character with substring
  • Assuming strings are not indexable
2. Which of the following is the correct way to loop through each character of a string text in TypeScript?
easy
A. for (let char of text) { console.log(char); }
B. for (let char in text) { console.log(char); }
C. for (let i = 0; i <= text.length; i++) { console.log(text[i]); }
D. for (let i = 1; i <= text.length; i++) { console.log(text[i]); }

Solution

  1. Step 1: Understand looping over strings

    Using for...of loops over characters directly, which is the cleanest way.
  2. Step 2: Evaluate the options

    The index-based loop using <= text.length causes an out-of-bounds access. for...in iterates over string indices ('0', '1', etc.) rather than characters. for...of correctly iterates over characters. Starting the index at 1 skips the first character and risks out-of-bounds.
  3. Final Answer:

    for (let char of text) { console.log(char); } -> Option A
  4. Quick Check:

    Use for...of to access characters directly [OK]
Hint: Use for...of to loop characters directly [OK]
Common Mistakes:
  • Using for...in which loops keys, not values
  • Starting index at 1 instead of 0
  • Confusing index with character in loops
3. What is the output of the following code?
const s = "abcde";
let result = "";
for (let i = 0; i < s.length; i += 2) {
  result += s[i];
}
console.log(result);
medium
A. "bdf"
B. ""
C. "abcde"
D. "ace"

Solution

  1. Step 1: Analyze the loop increments and indexing

    The loop starts at 0 and increments by 2 each time, so indexes are 0, 2, 4.
  2. Step 2: Collect characters at indexes 0, 2, 4

    Characters are s[0] = 'a', s[2] = 'c', s[4] = 'e'. Concatenated result is "ace".
  3. Final Answer:

    "ace" -> Option D
  4. Quick Check:

    Indexes 0,2,4 characters combined = "ace" [OK]
Hint: Check loop step size and indexes accessed [OK]
Common Mistakes:
  • Assuming loop increments by 1
  • Confusing indexes with characters
  • Expecting all characters concatenated
4. Identify the error in the following code snippet that tries to print each character of word:
const word = "test";
for (let i = 1; i <= word.length; i++) {
  console.log(word[i]);
}
medium
A. Missing declaration of variable i
B. Using <= instead of < causes infinite loop
C. Indexing starts at 1, skipping first character and causing undefined at end
D. Strings cannot be accessed by index in TypeScript

Solution

  1. Step 1: Check loop index range

    The loop starts at 1 and goes up to word.length (4), so indexes accessed are 1,2,3,4.
  2. Step 2: Identify indexing issues

    Index 0 is skipped (first character 't'), and index 4 is out of bounds (undefined). So first character is missed and last access is invalid.
  3. Final Answer:

    Indexing starts at 1, skipping first character and causing undefined at end -> Option C
  4. Quick Check:

    String indexes start at 0, not 1 [OK]
Hint: Loop indexes for strings start at 0 and go to length-1 [OK]
Common Mistakes:
  • Starting loop at 1 instead of 0
  • Using <= instead of < in loop condition
  • Assuming strings are not indexable
5. Given a string input, which code snippet correctly reverses the string by traversing it from end to start?
hard
A. let rev = ''; for (let i = input.length - 1; i >= 0; i--) { rev += input[i]; } console.log(rev);
B. let rev = ''; for (let i = 0; i < input.length; i++) { rev += input[input.length - i]; } console.log(rev);
C. let rev = ''; for (let i = input.length; i > 0; i--) { rev += input[i]; } console.log(rev);
D. let rev = ''; for (let i = input.length; i >= 0; i--) { rev += input[i]; } console.log(rev);

Solution

  1. Step 1: Understand correct index range for reverse traversal

    Indexes go from input.length - 1 down to 0 inclusive to cover all characters in reverse.
  2. Step 2: Verify the index ranges

    Looping from input.length - 1 down to 0 inclusive correctly captures all characters in reverse. A forward loop using input.length - i first accesses an out-of-bounds index. Starting at input.length immediately accesses invalid index. Decrementing from input.length to 0 also starts with out-of-bounds.
  3. Final Answer:

    let rev = ''; for (let i = input.length - 1; i >= 0; i--) { rev += input[i]; } console.log(rev); -> Option A
  4. Quick Check:

    Loop from length-1 down to 0 for reverse traversal [OK]
Hint: Start loop at length-1 and go down to 0 [OK]
Common Mistakes:
  • Starting loop at length instead of length-1
  • Using wrong index inside loop causing undefined
  • Loop condition off by one causing missing characters
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