Bird
Raised Fist0
Typescriptprogramming~5 mins

String type behavior in Typescript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: String type behavior
O(n)
Understanding Time Complexity

We want to understand how the time to work with strings changes as the string gets longer.

How does the length of a string affect the time it takes to do common operations?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function countChars(str: string, charToCount: string): number {
  let count = 0;
  for (let i = 0; i < str.length; i++) {
    if (str[i] === charToCount) {
      count++;
    }
  }
  return count;
}
    

This code counts how many times a specific character appears in a string.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through each character of the string once.
  • How many times: Exactly once for each character in the string (str.length times).
How Execution Grows With Input

As the string gets longer, the time to count characters grows in a straight line.

Input Size (n)Approx. Operations
1010 checks
100100 checks
10001000 checks

Pattern observation: Doubling the string length doubles the work needed.

Final Time Complexity

Time Complexity: O(n)

This means the time to count characters grows directly with the string length.

Common Mistake

[X] Wrong: "Accessing a character in a string is slow and adds extra loops."

[OK] Correct: Accessing a character by index is fast and does not add loops; the main time is from the single loop over the string.

Interview Connect

Understanding how string operations scale helps you write efficient code and explain your reasoning clearly in interviews.

Self-Check

"What if we searched for a substring instead of a single character? How would the time complexity change?"

Practice

(1/5)
1. Which of the following is the correct way to declare a string variable in TypeScript?
easy
A. let name: string = "Alice";
B. let name = 123;
C. let name: number = "Alice";
D. let name: boolean = true;

Solution

  1. Step 1: Understand TypeScript string type declaration

    In TypeScript, to declare a string variable, use let variableName: string = value; where value is text in quotes.
  2. Step 2: Check each option's type and value

    let name: string = "Alice"; uses string type and assigns a text value "Alice" correctly. Others assign wrong types or values.
  3. Final Answer:

    let name: string = "Alice"; -> Option A
  4. Quick Check:

    Correct string declaration = let name: string = "Alice"; [OK]
Hint: String variables use : string and quotes [OK]
Common Mistakes:
  • Assigning number or boolean to string type
  • Missing type annotation when required
  • Using wrong quotes for strings
2. Which of the following is the correct syntax to create a template string in TypeScript?
easy
A. let greeting = `Hello, ${name}!`;
B. let greeting = Hello, ${name}!;
C. let greeting = "Hello, ${name}!";
D. let greeting = 'Hello, ${name}!';

Solution

  1. Step 1: Identify template string syntax

    Template strings use backticks ` and allow embedding variables with ${variable}.
  2. Step 2: Check each option's quotes and variable embedding

    let greeting = `Hello, ${name}!`; correctly uses backticks and ${name} syntax. Options A and C use single or double quotes which do not support variable embedding. let greeting = Hello, ${name}!; misses quotes entirely.
  3. Final Answer:

    let greeting = `Hello, ${name}!`; -> Option A
  4. Quick Check:

    Template strings use backticks = let greeting = `Hello, ${name}!`; [OK]
Hint: Use backticks ` for template strings with ${} [OK]
Common Mistakes:
  • Using single or double quotes for templates
  • Forgetting backticks
  • Not wrapping string in quotes
3. What is the output of the following TypeScript code?
const text: string = "Hello World";
console.log(text.length);
medium
A. 10
B. 11
C. 12
D. Error

Solution

  1. Step 1: Understand string length property

    The length property returns the number of characters in the string, including spaces.
  2. Step 2: Count characters in "Hello World"

    "Hello World" has 11 characters: 5 letters + 1 space + 5 letters.
  3. Final Answer:

    11 -> Option B
  4. Quick Check:

    "Hello World" length = 11 [OK]
Hint: Count all characters including spaces for length [OK]
Common Mistakes:
  • Ignoring spaces in length count
  • Confusing length with last index
  • Expecting syntax error
4. Identify the error in this TypeScript code snippet:
let message: string = 'Hello';
message.toUppercase();
medium
A. Strings do not have toUpperCase method
B. No error, outputs 'HELLO'
C. Method name should be toUpperCase() with capital C
D. Missing semicolon after string declaration

Solution

  1. Step 1: Check method name spelling

    The correct method to convert string to uppercase is toUpperCase() with capital 'C'.
  2. Step 2: Identify error cause

    Using toUppercase() (lowercase 'c') causes a runtime error because the method does not exist.
  3. Final Answer:

    Method name should be toUpperCase() with capital C -> Option C
  4. Quick Check:

    Correct method spelling = Method name should be toUpperCase() with capital C [OK]
Hint: Remember uppercase C in toUpperCase() method [OK]
Common Mistakes:
  • Using wrong case in method names
  • Assuming strings lack case methods
  • Ignoring runtime errors
5. Given the following code, what does this code check?
const name: string = "Anna";
const reversed = name.split("").reverse().join("");
console.log(reversed === name);
hard
A. If the string length is even
B. If the string is empty
C. If the string contains only letters
D. If the string is a palindrome (same forwards and backwards)

Solution

  1. Step 1: Understand string reversal steps

    The code splits the string into characters, reverses the array, then joins back to a string.
  2. Step 2: Compare reversed string with original

    It checks if the reversed string equals the original string, which means the string reads the same forwards and backwards.
  3. Final Answer:

    If the string is a palindrome (same forwards and backwards) -> Option D
  4. Quick Check:

    Reversed equals original means palindrome = If the string is a palindrome (same forwards and backwards) [OK]
Hint: Reversing and comparing checks palindrome [OK]
Common Mistakes:
  • Confusing palindrome with empty string
  • Thinking it checks string length or letters
  • Missing split-reverse-join logic
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