English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo esempio, impareremo a calcolare tutte le permutazioni di una stringa in Java.
Per comprendere questo esempio, dovresti conoscere i seguentiProgrammazione JavaArgomento:
Le permutazioni di una stringa sono tutte le possibili nuove stringhe che possono essere formate permutando i caratteri della stringa. Ad esempio, la stringa ABC Permutazioni disponibili [ABC, ACB, BAC, BCA, CAB, CBA].
import java.util.HashSet; import java.util.Scanner; import java.util.Set; class Main { public static Set<String> getPermutation(String str) { //Crea un set per evitare ripetizioni degli ordini Set<String> permutations = new HashSet<String>(); //Controlla se la stringa è vuota if (str == null) { return null; } else if (str.length() == 0) { //Condizione di terminazione ricorsiva permutations.add(""); return permutations;} } //Ottiene il primo carattere char first = str.charAt(0); //Ottiene la stringa sottostante rimanente String sub = str.substring(1); //Chiamata ricorsiva a getPermutation() Set<String> words = getPermutation(sub); //Percorre words for (String strNew : words) { for (int i = 0; i <= strNew.length(); i++) { //Inserisce l'ordinamento nel set permutations.add(strNew.substring(0, i) + first + strNew.substring(i)); } } return permutations;} } public static void main(String[] args) { // Crea un oggetto della classe Scanner Scanner input = new Scanner(System.in); // Accetta l'input dell'utente System.out.print("Inserisci la stringa: "); String data = input.nextLine(); System.out.println(data + " Le permutazioni sono: " + getPermutation(data)); } }
Risultato di output
Stringa di input: ABC Le permutazioni di ABC sono: [ACB, BCA, ABC, CBA, BAC, CAB]
In Java, abbiamo utilizzato la ricorsione per calcolare tutte le permutazioni di una stringa. Qui, memorizziamo le permutazioni nel set. Pertanto, non ci saranno permutazioni duplicate.