What if you could teach your computer to read every letter perfectly and fast?
Why String Traversal and Character Access in DSA Typescript?
Imagine you have a long sentence and you want to find all the vowels in it by looking at each letter one by one.
Doing this by hand means reading each letter slowly and checking if it is a vowel.
Manually checking each letter is slow and tiring, especially for long sentences.
It is easy to miss letters or make mistakes when you do it by hand.
Using string traversal and character access in code lets you quickly and accurately look at each letter in a sentence.
This way, the computer does the hard work of checking every character fast and without errors.
const sentence = 'hello world'; let vowels = ''; // Manually check each letter one by one if (sentence[0] === 'h') vowels += sentence[0]; if (sentence[1] === 'e') vowels += sentence[1]; // ... and so on for every letter
const sentence = 'hello world'; let vowels = ''; for (let i = 0; i < sentence.length; i++) { if ('aeiou'.includes(sentence[i])) vowels += sentence[i]; }
It lets you quickly analyze and process text by easily checking each letter in a string.
Spell checkers use string traversal to look at every letter and find mistakes in your writing.
Manually checking letters is slow and error-prone.
String traversal lets code look at each character quickly and correctly.
This helps in many text-related tasks like searching, counting, and editing letters.
Practice
str[2] return when str = "hello"?Solution
Step 1: Understand string indexing
Strings in TypeScript can be accessed by index starting at 0, so index 2 refers to the third character.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'.Final Answer:
The character 'l' -> Option BQuick Check:
str[2] = 'l' [OK]
- Thinking index starts at 1
- Confusing character with substring
- Assuming strings are not indexable
text in TypeScript?Solution
Step 1: Understand looping over strings
Usingfor...ofloops over characters directly, which is the cleanest way.Step 2: Evaluate the options
The index-based loop using <= text.length causes an out-of-bounds access.for...initerates over string indices ('0', '1', etc.) rather than characters.for...ofcorrectly iterates over characters. Starting the index at 1 skips the first character and risks out-of-bounds.Final Answer:
for (let char of text) { console.log(char); } -> Option AQuick Check:
Use for...of to access characters directly [OK]
- Using for...in which loops keys, not values
- Starting index at 1 instead of 0
- Confusing index with character in loops
const s = "abcde";
let result = "";
for (let i = 0; i < s.length; i += 2) {
result += s[i];
}
console.log(result);Solution
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.Step 2: Collect characters at indexes 0, 2, 4
Characters are s[0] = 'a', s[2] = 'c', s[4] = 'e'. Concatenated result is "ace".Final Answer:
"ace" -> Option DQuick Check:
Indexes 0,2,4 characters combined = "ace" [OK]
- Assuming loop increments by 1
- Confusing indexes with characters
- Expecting all characters concatenated
word:const word = "test";
for (let i = 1; i <= word.length; i++) {
console.log(word[i]);
}Solution
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.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.Final Answer:
Indexing starts at 1, skipping first character and causing undefined at end -> Option CQuick Check:
String indexes start at 0, not 1 [OK]
- Starting loop at 1 instead of 0
- Using <= instead of < in loop condition
- Assuming strings are not indexable
input, which code snippet correctly reverses the string by traversing it from end to start?Solution
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.Step 2: Verify the index ranges
Looping frominput.length - 1down to 0 inclusive correctly captures all characters in reverse. A forward loop usinginput.length - ifirst accesses an out-of-bounds index. Starting atinput.lengthimmediately accesses invalid index. Decrementing frominput.lengthto 0 also starts with out-of-bounds.Final Answer:
let rev = ''; for (let i = input.length - 1; i >= 0; i--) { rev += input[i]; } console.log(rev); -> Option AQuick Check:
Loop from length-1 down to 0 for reverse traversal [OK]
- Starting loop at length instead of length-1
- Using wrong index inside loop causing undefined
- Loop condition off by one causing missing characters
Ready to prove it?
Pass the test and this pattern moves unknown
