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

In tất cả hoán vị của chuỗi trong Java

Dưới đây là chương trình Java in tất cả hoán vị của một chuỗi:

Ví dụ

public class Demo{ 
    static void print_permutations(String my_str, String my_ans){ 
        if (my_str.length() == 0){ 
            System.out.print(my_ans + " "); 
            return; 
        } 
        boolean my_arr[] = new boolean[26]; 
        for (int i = 0; i < my_str.length(); i++){ 
            char ch = my_str.charAt(i); 
            String remaining_str = my_str.substring(0, i) + my_str.substring(i + 1); 
            if (my_arr[ch - 'a'] == false) 
                print_permutations(remaining_str, my_ans + ch); 
            my_arr[ch - 'a'] = true; 
        } 
    } 
    public static void main(String[] args){ 
        String my_str = "hey"; 
        System.out.println("Các hoán vị của chuỗi là:"); 
        print_permutations(my_str, ""); 
    } 
}

Kết quả

Các hoán vị của chuỗi là: hey hye ehy eyh yhe yeh

Lớp Demo chứa hàm tĩnh print_permutations, kiểm tra nếu chuỗi rỗng thì in kết quả. Mảng boolean my_arr kích thước 26 được tạo (mặc định false). Khi một ký tự được dùng, chỉ số trong mảng đổi thành true.

Vòng for duyệt độ dài chuỗi và ký tự thứ i được kiểm tra. Phần còn lại của chuỗi không có ký tự i gán cho remaining_str. Nếu ký tự chưa dùng, gọi đệ quy hàm. Ngược lại, không gọi. Trong main, chuỗi được định nghĩa và hàm được gọi.