File tree Expand file tree Collapse file tree 2 files changed +64
-1
lines changed
src/main/java/com/thealgorithms Expand file tree Collapse file tree 2 files changed +64
-1
lines changed Original file line number Diff line number Diff line change 1+ package com .thealgorithms .stacks ;
2+
3+ import java .util .Stack ;
4+
5+ public final class ReverseStringUsingStack {
6+ private ReverseStringUsingStack () {
7+ }
8+
9+ /**
10+ * @param str string to be reversed using stack
11+ * @return reversed string
12+ */
13+ public static String reverse (String str ) {
14+ // Check if the input string is null
15+ if (str == null ) {
16+ throw new IllegalArgumentException ("Input string cannot be null" );
17+ }
18+ Stack <Character > stack = new Stack <>();
19+ StringBuilder reversedString = new StringBuilder ();
20+ // Check if the input string is empty
21+ if (str .isEmpty ()) {
22+ return str ;
23+ }
24+ // Push each character of the string onto the stack
25+ for (char ch : str .toCharArray ()) {
26+ stack .push (ch );
27+ }
28+ // Pop each character from the stack and append to the StringBuilder
29+ while (!stack .isEmpty ()) {
30+ reversedString .append (stack .pop ());
31+ }
32+ return reversedString .toString ();
33+ }
34+ }
Original file line number Diff line number Diff line change 11package com .thealgorithms .strings ;
22
3+ import java .util .Stack ;
4+
35/**
46 * Reverse String using different version
57 */
@@ -57,4 +59,31 @@ public static String reverse3(String string) {
5759 }
5860 return sb .toString ();
5961 }
60- }
62+
63+ /**
64+ * Reverse version 4 the given string using a Stack.
65+ * This method pushes each character of the string onto a stack
66+ * and then pops them off to create the reversed string.
67+ */
68+ public static String reverse4 (String str ) {
69+ if (str == null ) {
70+ throw new IllegalArgumentException ("Input string cannot be null" );
71+ }
72+ Stack <Character > stack = new Stack <>();
73+ StringBuilder reversedString = new StringBuilder ();
74+ // Check if the input string is empty
75+ if (str .isEmpty ()) {
76+ return str ;
77+ }
78+ // Push each character of the string onto the stack
79+ for (char i : str .toCharArray ()) {
80+ stack .push (i );
81+ }
82+ // Pop each character from the stack and append to the StringBuilder
83+ while (!stack .isEmpty ()) {
84+ reversedString .append (stack .pop ());
85+ }
86+ return reversedString .toString ();
87+ }
88+
89+ }
You can’t perform that action at this time.
0 commit comments