Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java đảo ngược chuỗi bằng Stack

Giới thiệu

Trong bài viết này, chúng ta sẽ tìm hiểu cách đảo ngược một chuỗi (string) bằng cấu trúc dữ liệu Stack. Chuỗi là kiểu dữ liệu chứa một hoặc nhiều ký tự, được đặt trong dấu ngoặc kép (" "). Stack là cấu trúc dữ liệu tuyến tính lưu trữ tập hợp đối tượng, hoạt động theo nguyên tắc Last-In-First-Out (LIFO - Vào sau ra trước).

Minh họa

Đầu vào:

Input string: Java Program

Đầu ra mong muốn:

Reversed string: margorP avaJ

Thuật toán

  1. Bắt đầu
  2. Khai báo: chuỗi input_string, result, stack stack, ký tự reverse
  3. Khởi tạo giá trị
  4. Duyệt từng ký tự của chuỗi bằng vòng lặp for, đẩy (push) từng ký tự vào stack
  5. Lấy (pop) từng phần tử từ stack và gán vào chuỗi kết quả
  6. Hiển thị kết quả
  7. Kết thúc

Ví dụ 1: Triển khai trong hàm main

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);
    }
}

Đầu ra

Required packages have been imported
The string is defined as Java Program
The reversed string is: margorP avaJ

Ví dụ 2: Tách hàm theo hướng đối tượng

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));
    }
}

Đầu ra

Required packages have been imported
The string is defined as Java Program
The reversed string is: margorP avaJ