From bdb3cef2e3ce87bae1120daa0317b9eec4efa026 Mon Sep 17 00:00:00 2001 From: bhavesh977 Date: Thu, 31 Jul 2025 18:00:35 +0530 Subject: [PATCH 1/5] feat: add ReverseStringUsingStack (#6451) --- .../thealgorithms/stacks/ReverseString.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/java/com/thealgorithms/stacks/ReverseString.java diff --git a/src/main/java/com/thealgorithms/stacks/ReverseString.java b/src/main/java/com/thealgorithms/stacks/ReverseString.java new file mode 100644 index 000000000000..1667b898ea48 --- /dev/null +++ b/src/main/java/com/thealgorithms/stacks/ReverseString.java @@ -0,0 +1,49 @@ +package com.thealgorithms.stacks; + +import java.util.Scanner; +import java.util.Stack; + +public class ReverseString { + + /** + * Main method to take user input and print the reversed string. + */ + public static void main(String[] args) { + + // Create a Scanner object to read input from the user + Scanner sc = new Scanner(System.in); + System.out.print("Enter the String to reverse : "); + String str = sc.nextLine(); + + // Call the reverse method and print the reversed string + System.out.println("Reversed String : " + reverse(str)); + sc.close(); + + } + + /** + * Reverses a string using a stack. + * + * @param str The input string to reverse + * @return The reversed string + */ + public static String reverse(String str) { + // StringBuilder to build the reversed string + StringBuilder sb = new StringBuilder(); + // Stack to hold the characters of the string + Stack st = new Stack<>(); + + // Push each character of the string onto the stack + for (int i = 0; i < str.length(); i++) { + st.push(str.charAt(i)); + } + + // Pop characters from the stack and append to StringBuilder + while (!st.empty()) { + sb.append(st.pop()); + } + // Convert StringBuilder to String and return + String rev = sb.toString(); + return rev; + } +} From 2ab15bf4a4b2f19aa5b53a95fe1288b734df882c Mon Sep 17 00:00:00 2001 From: bhavesh977 Date: Thu, 31 Jul 2025 18:19:42 +0530 Subject: [PATCH 2/5] 6451-Add ReverseStringUsingStack.java using Stack data structure --- .../strings/ReverseStringUsingStack.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java diff --git a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java new file mode 100644 index 000000000000..64e26c7d3b18 --- /dev/null +++ b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java @@ -0,0 +1,49 @@ +package com.thealgorithms.strings; + +import java.util.Scanner; +import java.util.Stack; + +public class ReverseStringUsingStack { + + /** + * Main method to take user input and print the reversed string. + */ + public static void main(String[] args) { + + // Create a Scanner object to read input from the user + Scanner sc = new Scanner(System.in); + System.out.print("Enter the String to reverse : "); + String str = sc.nextLine(); + + // Call the reverse method and print the reversed string + System.out.println("Reversed String : " + reverse(str)); + sc.close(); + + } + + /** + * Reverses a string using a stack. + * + * @param str The input string to reverse + * @return The reversed string + */ + public static String reverse(String str) { + // StringBuilder to build the reversed string + StringBuilder sb = new StringBuilder(); + // Stack to hold the characters of the string + Stack st = new Stack<>(); + + // Push each character of the string onto the stack + for (int i = 0; i < str.length(); i++) { + st.push(str.charAt(i)); + } + + // Pop characters from the stack and append to StringBuilder + while (!st.empty()) { + sb.append(st.pop()); + } + // Convert StringBuilder to String and return + String rev = sb.toString(); + return rev; + } +} From 0c4e3198ad42d0f88d97baeb430505f6d2b44aee Mon Sep 17 00:00:00 2001 From: bhavesh977 Date: Thu, 31 Jul 2025 18:38:23 +0530 Subject: [PATCH 3/5] 6451-Add ReverseStringUsingStack.java using Stack data structure --- .../thealgorithms/stacks/ReverseString.java | 49 ------------------- .../strings/ReverseStringUsingStack.java | 3 +- 2 files changed, 1 insertion(+), 51 deletions(-) delete mode 100644 src/main/java/com/thealgorithms/stacks/ReverseString.java diff --git a/src/main/java/com/thealgorithms/stacks/ReverseString.java b/src/main/java/com/thealgorithms/stacks/ReverseString.java deleted file mode 100644 index 1667b898ea48..000000000000 --- a/src/main/java/com/thealgorithms/stacks/ReverseString.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.thealgorithms.stacks; - -import java.util.Scanner; -import java.util.Stack; - -public class ReverseString { - - /** - * Main method to take user input and print the reversed string. - */ - public static void main(String[] args) { - - // Create a Scanner object to read input from the user - Scanner sc = new Scanner(System.in); - System.out.print("Enter the String to reverse : "); - String str = sc.nextLine(); - - // Call the reverse method and print the reversed string - System.out.println("Reversed String : " + reverse(str)); - sc.close(); - - } - - /** - * Reverses a string using a stack. - * - * @param str The input string to reverse - * @return The reversed string - */ - public static String reverse(String str) { - // StringBuilder to build the reversed string - StringBuilder sb = new StringBuilder(); - // Stack to hold the characters of the string - Stack st = new Stack<>(); - - // Push each character of the string onto the stack - for (int i = 0; i < str.length(); i++) { - st.push(str.charAt(i)); - } - - // Pop characters from the stack and append to StringBuilder - while (!st.empty()) { - sb.append(st.pop()); - } - // Convert StringBuilder to String and return - String rev = sb.toString(); - return rev; - } -} diff --git a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java index 64e26c7d3b18..6fa98dc51057 100644 --- a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java +++ b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java @@ -18,12 +18,11 @@ public static void main(String[] args) { // Call the reverse method and print the reversed string System.out.println("Reversed String : " + reverse(str)); sc.close(); - } /** * Reverses a string using a stack. - * + * * @param str The input string to reverse * @return The reversed string */ From 6008fbfccc6f3a3218a40b6f1cc402168c99222c Mon Sep 17 00:00:00 2001 From: bhavesh977 Date: Thu, 31 Jul 2025 18:48:24 +0530 Subject: [PATCH 4/5] feat(strings): Add ReverseStringUsingStack to reverse strings using stack --- .../com/thealgorithms/strings/ReverseStringUsingStack.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java index 6fa98dc51057..53e6db936be7 100644 --- a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java +++ b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java @@ -3,7 +3,7 @@ import java.util.Scanner; import java.util.Stack; -public class ReverseStringUsingStack { +public final class ReverseStringUsingStack { /** * Main method to take user input and print the reversed string. @@ -19,6 +19,10 @@ public static void main(String[] args) { System.out.println("Reversed String : " + reverse(str)); sc.close(); } + // Private constructor to hide implicit public one + private ReverseStringUsingStack() { + throw new UnsupportedOperationException("Utility class"); + } /** * Reverses a string using a stack. From 815c24f854e1cfcce8b714c6418cb834faa826b0 Mon Sep 17 00:00:00 2001 From: bhavesh977 Date: Thu, 31 Jul 2025 19:05:09 +0530 Subject: [PATCH 5/5] refactor: remove main method and add JavaDoc to ReverseStringUsingStack --- .../strings/ReverseStringUsingStack.java | 48 +++++++------------ 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java index 53e6db936be7..19bc704f8b22 100644 --- a/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java +++ b/src/main/java/com/thealgorithms/strings/ReverseStringUsingStack.java @@ -1,52 +1,38 @@ package com.thealgorithms.strings; -import java.util.Scanner; import java.util.Stack; +/** + * A utility class to reverse a given string using a Stack. + */ public final class ReverseStringUsingStack { - /** - * Main method to take user input and print the reversed string. - */ - public static void main(String[] args) { - - // Create a Scanner object to read input from the user - Scanner sc = new Scanner(System.in); - System.out.print("Enter the String to reverse : "); - String str = sc.nextLine(); - - // Call the reverse method and print the reversed string - System.out.println("Reversed String : " + reverse(str)); - sc.close(); - } - // Private constructor to hide implicit public one + // Private constructor to prevent instantiation of utility class private ReverseStringUsingStack() { throw new UnsupportedOperationException("Utility class"); } /** - * Reverses a string using a stack. + * Reverses the input string using a Stack. * - * @param str The input string to reverse - * @return The reversed string + * @param str the input string to be reversed + * @return the reversed string */ public static String reverse(String str) { - // StringBuilder to build the reversed string StringBuilder sb = new StringBuilder(); - // Stack to hold the characters of the string - Stack st = new Stack<>(); + Stack stack = new Stack<>(); - // Push each character of the string onto the stack - for (int i = 0; i < str.length(); i++) { - st.push(str.charAt(i)); + // Push each character of the string into the stack + for (int i = 0; i < str.length(); ++i) { + stack.push(str.charAt(i)); } - // Pop characters from the stack and append to StringBuilder - while (!st.empty()) { - sb.append(st.pop()); + // Pop each character from the stack and append to StringBuilder + while (!stack.isEmpty()) { + sb.append(stack.pop()); } - // Convert StringBuilder to String and return - String rev = sb.toString(); - return rev; + + // Return the reversed string + return sb.toString(); } }