Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 27ada8a

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /