Bird
Raised Fist0
DSA Javaprogramming~10 mins

String Reversal Approaches in DSA Java - Interactive Practice

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

Complete the code to reverse a string using a for loop.

DSA Java
String reversed = "";
for (int i = str.length() - 1; i [1] 0; i--) {
    reversed += str.charAt(i);
}
Drag options to blanks, or click blank then click option'
A>
B<=
C<
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>=' causes the first character to be skipped.
Using '>' causes the loop to stop before reaching index 0.
2fill in blank
medium

Complete the code to reverse a string using StringBuilder's built-in method.

DSA Java
StringBuilder sb = new StringBuilder(str);
sb.[1]();
String reversed = sb.toString();
Drag options to blanks, or click blank then click option'
AtoString
Breverse
Cappend
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using toString() alone does not reverse the string.
Using append() or delete() does not reverse the string.
3fill in blank
hard

Fix the error in the recursive string reversal method by completing the base case condition.

DSA Java
public String reverse(String str) {
    if (str.length() [1] 0) {
        return "";
    }
    return reverse(str.substring(1)) + str.charAt(0);
}
Drag options to blanks, or click blank then click option'
A<
B>
C==
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' or '>=' causes infinite recursion.
Using '<' does not correctly identify the base case.
4fill in blank
hard

Fill both blanks to reverse a string using a character array and swapping.

DSA Java
char[] chars = str.toCharArray();
int left = 0;
int right = str.length() [1] 1;
while (left [2] right) {
    char temp = chars[left];
    chars[left] = chars[right];
    chars[right] = temp;
    left++;
    right--;
}
String reversed = new String(chars);
Drag options to blanks, or click blank then click option'
A-
B<
C>
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Setting right to length instead of length - 1 causes index error.
Using '>' instead of '<' in while condition causes no swaps.
5fill in blank
hard

Fill all three blanks to reverse a string using a for loop and StringBuilder.

DSA Java
StringBuilder sb = new StringBuilder();
for (int i = str.length() [1] 1; i [2]= 0; i[3]) {
    sb.append(str.charAt(i));
}
String reversed = sb.toString();
Drag options to blanks, or click blank then click option'
A-
B>
C--
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' instead of '--' causes infinite loop.
Incorrect loop condition skips first character.

Practice

(1/5)
1. Which of the following methods correctly reverses a string in Java using built-in functions?
easy
A. Using new StringBuilder(str).reverse().toString()
B. Using str.reverse()
C. Using str.toCharArray().reverse()
D. Using String.reverse(str)

Solution

  1. Step 1: Understand Java String reversal methods

    Java's String class does not have a reverse() method, but StringBuilder does.
  2. Step 2: Identify correct usage of StringBuilder

    Creating a StringBuilder from the string and calling reverse() then toString() returns the reversed string.
  3. Final Answer:

    Using new StringBuilder(str).reverse().toString() -> Option A
  4. Quick Check:

    StringBuilder.reverse() = correct reversal [OK]
Hint: Use StringBuilder's reverse() method for easy string reversal [OK]
Common Mistakes:
  • Trying to call reverse() directly on String
  • Using non-existent String.reverse() method
  • Assuming toCharArray() has reverse() method
2. Which of the following code snippets correctly reverses a string str using a for loop in Java?
easy
A. for (int i = 0; i < str.length(); i++) reversed += str.charAt(i);
B. for (int i = 1; i <= str.length(); i++) reversed += str.charAt(i);
C. for (int i = str.length() - 1; i >= 0; i--) reversed += str.charAt(i);
D. for (int i = str.length(); i > 0; i--) reversed += str.charAt(i);

Solution

  1. Step 1: Understand string indexing in Java

    String indices start at 0 and go to length()-1.
  2. Step 2: Identify correct loop to reverse string

    Loop from last index (length()-1) down to 0, appending characters to reversed string.
  3. Final Answer:

    for (int i = str.length() - 1; i >= 0; i--) reversed += str.charAt(i); -> Option C
  4. Quick Check:

    Loop from end to start = correct reversal [OK]
Hint: Loop backward from length()-1 to 0 to reverse string [OK]
Common Mistakes:
  • Looping forward instead of backward
  • Using 1-based indexing instead of 0-based
  • Accessing charAt with index equal to length()
3. What is the output of the following Java code?
String str = "hello";
String reversed = "";
for (int i = str.length() - 1; i >= 0; i--) {
    reversed += str.charAt(i);
}
System.out.println(reversed);
medium
A. hello
B. olleh
C. olle
D. SyntaxError

Solution

  1. Step 1: Trace the for loop from end to start

    The loop starts at index 4 ('o') and goes down to 0 ('h'), appending each character to reversed.
  2. Step 2: Build reversed string step-by-step

    Characters appended in order: 'o', 'l', 'l', 'e', 'h' forming "olleh".
  3. Final Answer:

    olleh -> Option B
  4. Quick Check:

    Reverse of "hello" = "olleh" [OK]
Hint: Appending chars backward builds reversed string [OK]
Common Mistakes:
  • Expecting original string output
  • Confusing loop direction
  • Assuming syntax error due to += on strings
4. Identify the error in the following Java code that attempts to reverse a string:
String str = "world";
String reversed = "";
for (int i = 0; i <= str.length(); i++) {
    reversed += str.charAt(i);
}
System.out.println(reversed);
medium
A. No error, code runs correctly
B. String reversed should be a StringBuilder instead of String
C. Use str.reverse() instead of loop
D. Loop condition should be i < str.length() to avoid IndexOutOfBoundsException

Solution

  1. Step 1: Check loop boundary conditions

    The loop runs from i=0 to i=str.length() inclusive, but valid indices are 0 to str.length()-1.
  2. Step 2: Identify exception cause

    Accessing str.charAt(str.length()) causes IndexOutOfBoundsException.
  3. Final Answer:

    Loop condition should be i < str.length() to avoid IndexOutOfBoundsException -> Option D
  4. Quick Check:

    Index must be less than length() [OK]
Hint: Use i < length() in loops to avoid index errors [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Ignoring exception from invalid index
  • Assuming StringBuilder is mandatory
5. Given a string str, which approach efficiently reverses it without using extra space for another string in Java?
hard
A. Convert to char array, swap characters from ends moving inward, then create new string
B. Use StringBuilder.reverse() which creates a new reversed string internally
C. Concatenate characters in reverse order using a loop and a new string
D. Use recursion to build reversed string by concatenation

Solution

  1. Step 1: Understand in-place reversal concept

    Strings in Java are immutable, so we cannot change them directly, but char arrays can be modified in place.
  2. Step 2: Use char array swapping to reverse without extra string

    Convert string to char array, swap characters from start and end moving inward, then create string from modified array.
  3. Step 3: Compare with other options

    Other methods create new strings or use extra space, so not in-place.
  4. Final Answer:

    Convert to char array, swap characters from ends moving inward, then create new string -> Option A
  5. Quick Check:

    In-place reversal uses char array swaps [OK]
Hint: Use char array swaps for in-place string reversal [OK]
Common Mistakes:
  • Assuming StringBuilder.reverse() is in-place
  • Using string concatenation causing extra space
  • Ignoring string immutability in Java
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