ในบทความนี้ เราจะเข้าใจวิธีการย้อนกลับสตริงโดยใช้สแต็ค สตริงเป็นประเภทข้อมูลที่มีอักขระตั้งแต่หนึ่งตัวขึ้นไปและอยู่ในเครื่องหมายคำพูดคู่ (“ ”) สแต็กเป็นโครงสร้างข้อมูลเชิงเส้นที่ใช้เก็บคอลเล็กชันของอ็อบเจ็กต์ อิงตาม Last-In-First-Out (LIFO)
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
สมมติว่าข้อมูลที่เราป้อนคือ −
Input string: Java Program
ผลลัพธ์ที่ต้องการจะเป็น −
Reversed string: margorP avaJ
อัลกอริทึม
Step 1 - START Step 2 - Declare two string values namely input_string and result, a stack value namely stack, and a char value namely reverse. Step 3 - Define the values. Step 4 - Iterate over each characters of the string using a for-loop and push each character to the stack using ‘push’ keyword. Step 5 - Now, pop each of the elements in the stack using ‘pop’ keyword and assign it to the result string. Step 6 - Display the result Step 7 - Stop
ตัวอย่างที่ 1
ที่นี่ เราเชื่อมโยงการดำเนินการทั้งหมดเข้าด้วยกันภายใต้ฟังก์ชัน 'หลัก'
import java.util.*; public class ReverseString { public static void main(String[] args) { System.out.println("Required packages have been imported"); String input_string = "Java Program"; System.out.println("The string is defined as " +input_string); char[] reverse = new char[input_string.length()]; Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < input_string.length(); i++) { stack.push(input_string.charAt(i)); } int i = 0; while (!stack.isEmpty()) { reverse[i++] = stack.pop(); } String result = new String(reverse); System.out.println("\nThe reversed string is: " + result); } }
ผลลัพธ์
Required packages have been imported The string is defined as Java Program The reversed string is: margorP avaJ
ตัวอย่างที่ 2
ในที่นี้ เราสรุปการดำเนินการเป็นฟังก์ชันที่แสดงการเขียนโปรแกรมเชิงวัตถุ
import java.util.*; public class ReverseString { public static String reverse_string(String input_string) { char[] reverse = new char[input_string.length()]; Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < input_string.length(); i++) { stack.push(input_string.charAt(i)); } int i = 0; while (!stack.isEmpty()) { reverse[i++] = stack.pop(); } return new String(reverse); } public static void main(String[] args) { System.out.println("Required packages have been imported"); String input_string = "Java Program"; System.out.println("The string is defined as " +input_string); System.out.println("\nThe reversed string is: " + reverse_string(input_string)); } }
ผลลัพธ์
Required packages have been imported The string is defined as Java Program The reversed string is: margorP avaJ