English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Java controllo dei flussi

Java array

Java orientato agli oggetti (I)

Java orientato agli oggetti (II)

Orientamento ad oggetti Java (III)

Gestione delle eccezioni Java

List Java

Queue Java (coda)

Map Java

Set Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Programma Java che calcola tutte le permutazioni di una stringa

Esempi Java completi

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].

Esempio: Programma Java per ottenere tutte le permutazioni di una stringa

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.

Esempi Java completi