Skip to content

Commit 27ada8a

Browse files
authored
Migrate recursive reverse string method and tests to ReverseString (#6504)
* Migrate recursive reverse string method and tests to ReverseString - Moved recursive reverse method from ReverseStringRecursive.java to ReverseString.java - Moved tests from ReverseStringRecursiveTest.java to ReverseStringTest.java - Deleted old ReverseStringRecursive files * Fix formatting for ReverseStringTest.java as per clang-format linter
1 parent e78d53d commit 27ada8a

File tree

4 files changed

+22
-37
lines changed

4 files changed

+22
-37
lines changed

src/main/java/com/thealgorithms/strings/ReverseString.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,17 @@ public static String reverseStringUsingStack(String str) {
8686
}
8787
return reversedString.toString();
8888
}
89+
90+
/**
91+
* Reverse the String using Recursion
92+
* @param str string to be reversed
93+
* @return reversed string
94+
*/
95+
public static String reverseStringUsingRecursion(String str) {
96+
if (str.isEmpty()) {
97+
return str;
98+
} else {
99+
return reverseStringUsingRecursion(str.substring(1)) + str.charAt(0);
100+
}
101+
}
89102
}

src/main/java/com/thealgorithms/strings/ReverseStringRecursive.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/test/java/com/thealgorithms/strings/ReverseStringRecursiveTest.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/test/java/com/thealgorithms/strings/ReverseStringTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.junit.jupiter.api.Test;
88
import org.junit.jupiter.params.ParameterizedTest;
99
import org.junit.jupiter.params.provider.Arguments;
10+
import org.junit.jupiter.params.provider.CsvSource;
1011
import org.junit.jupiter.params.provider.MethodSource;
1112

1213
public class ReverseStringTest {
@@ -44,4 +45,12 @@ public void testReverseStringUsingStack(String input, String expectedOutput) {
4445
public void testReverseStringUsingStackWithNullInput() {
4546
assertThrows(IllegalArgumentException.class, () -> ReverseString.reverseStringUsingStack(null));
4647
}
48+
49+
@ParameterizedTest
50+
@CsvSource({"'Hello World', 'dlroW olleH'", "'helloworld', 'dlrowolleh'", "'123456789', '987654321'", "'', ''", "'A', 'A'", "'!123 ABC xyz!', '!zyx CBA 321!'", "'Abc 123 Xyz', 'zyX 321 cbA'", "'12.34,56;78:90', '09:87;65,43.21'", "'abcdEFGHiJKL', 'LKJiHGFEdcba'",
51+
"'MixOf123AndText!', '!txeTdnA321fOxiM'"})
52+
public void
53+
testReverseStringUsingRecursion(String input, String expectedOutput) {
54+
assertEquals(expectedOutput, ReverseString.reverseStringUsingRecursion(input));
55+
}
4756
}

0 commit comments

Comments
 (0)