Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

String Reversal Approaches in DSA Javascript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: String Reversal Approaches
O(n)
Understanding Time Complexity

We want to understand how the time needed to reverse a string changes as the string gets longer.

How does the work grow when the input string size grows?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function reverseString(str) {
  let reversed = [];
  for (let i = str.length - 1; i >= 0; i--) {
    reversed.push(str[i]);
  }
  return reversed.join('');
}
    

This code creates a new string by adding characters from the end of the input string to the start.

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, from the last to the first.
How Execution Grows With Input

As the string gets longer, the number of steps grows directly with the number of characters.

Input Size (n)Approx. Operations
10About 10 steps
100About 100 steps
1000About 1000 steps

Pattern observation: The work grows in a straight line with the input size.

Final Time Complexity

Time Complexity: O(n)

This means the time to reverse the string grows directly in proportion to the string length.

Common Mistake

[X] Wrong: "Reversing a string is instant or constant time because it's just one operation."

[OK] Correct: Each character must be handled, so the time grows with the string length, not fixed.

Interview Connect

Understanding how string reversal scales helps you reason about similar problems with arrays or lists, a common skill interviewers look for.

Self-Check

"What if we used built-in methods like split, reverse, and join? How would the time complexity change?"

Practice

(1/5)
1. What does the JavaScript method split('') do when applied to a string?
easy
A. It reverses the string characters.
B. It removes all spaces from the string.
C. It joins array elements into a string.
D. It converts the string into an array of individual characters.

Solution

  1. Step 1: Understand the split method

    The split('') method splits a string into an array by each character because the separator is an empty string.
  2. Step 2: Effect on string

    For example, 'hello'.split('') becomes ['h', 'e', 'l', 'l', 'o'].
  3. Final Answer:

    It converts the string into an array of individual characters. -> Option D
  4. Quick Check:

    split('') = array of chars [OK]
Hint: split('') breaks string into chars array [OK]
Common Mistakes:
  • Thinking split('') reverses the string
  • Confusing split('') with join()
  • Assuming split('') removes spaces
2. Which of the following is the correct syntax to reverse a string str in JavaScript using built-in methods?
easy
A. str.reverse().join('')
B. str.split('').reverse().join('')
C. reverse(str).split('').join('')
D. str.join('').reverse()

Solution

  1. Step 1: Understand string and array methods

    Strings do not have a reverse() method, but arrays do. So first convert string to array using split('').
  2. Step 2: Reverse array and join back

    Use reverse() on the array, then join('') to convert back to string.
  3. Final Answer:

    str.split('').reverse().join('') -> Option B
  4. Quick Check:

    split + reverse + join = reversed string [OK]
Hint: Split string, reverse array, join back [OK]
Common Mistakes:
  • Trying to call reverse() directly on string
  • Using join() before reverse()
  • Using incorrect method order
3. What is the output of the following code?
const str = 'abc';
const reversed = str.split('').reverse().join('');
console.log(reversed);
medium
A. Error: reverse is not a function
B. 'abc'
C. 'cba'
D. ['c', 'b', 'a']

Solution

  1. Step 1: Split string into array

    'abc'.split('') becomes ['a', 'b', 'c'].
  2. Step 2: Reverse array and join

    ['a', 'b', 'c'].reverse() becomes ['c', 'b', 'a'], then .join('') makes it 'cba'.
  3. Final Answer:

    'cba' -> Option C
  4. Quick Check:

    split + reverse + join = 'cba' [OK]
Hint: Split, reverse, join outputs reversed string [OK]
Common Mistakes:
  • Expecting original string output
  • Expecting array output instead of string
  • Confusing method order causing errors
4. Identify the error in this string reversal code:
function reverseString(s) {
  return s.reverse().join('');
}
medium
A. Strings do not have reverse() method.
B. join() cannot be used on strings.
C. Function missing return statement.
D. split('') is missing before reverse().

Solution

  1. Step 1: Check string methods

    Strings do not have reverse(), so calling s.reverse() causes error.
  2. Step 2: Fix by splitting string

    We must convert string to array first using s.split('') before reversing.
  3. Final Answer:

    Strings do not have reverse() method. -> Option A
  4. Quick Check:

    No reverse() method on strings [OK]
Hint: Strings do not have reverse() method [OK]
Common Mistakes:
  • Trying to reverse string directly
  • Ignoring need to split string
  • Misunderstanding join() usage
5. Given the function below, what will reverseString('hello world') return?
function reverseString(s) {
  let reversed = '';
  for (let i = s.length - 1; i >= 0; i--) {
    reversed += s[i];
  }
  return reversed;
}
hard
A. 'dlrow olleh'
B. 'hello world'
C. 'helloworld'
D. Error: Cannot read property 'length' of undefined

Solution

  1. Step 1: Loop from end to start

    The for loop starts at last character index and moves backward to 0, appending each character to reversed.
  2. Step 2: Build reversed string

    Characters are added in reverse order, so 'hello world' becomes 'dlrow olleh'.
  3. Final Answer:

    'dlrow olleh' -> Option A
  4. Quick Check:

    Loop backward appends chars reversed [OK]
Hint: Loop backward to build reversed string [OK]
Common Mistakes:
  • Looping forward instead of backward
  • Not appending characters correctly
  • Confusing string concatenation
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