Programa Java para calcular todas las permutaciones de la cadena

En este ejemplo, aprenderemos a calcular todas las permutaciones de la cadena en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Cadena Java
  • Recursión de Java
  • Clase de escáner de Java

La permutación de la cadena significa todas las posibles cadenas nuevas que se pueden formar intercambiando la posición de los caracteres de la cadena. Por ejemplo, la cadena ABC tiene permutaciones (ABC, ACB, BAC, BCA, CAB, CBA) .

Ejemplo: programa Java para obtener toda la permutación de una cadena

 import java.util.HashSet; import java.util.Scanner; import java.util.Set; class Main ( public static Set getPermutation(String str) ( // create a set to avoid duplicate permutation Set permutations = new HashSet(); // check if string is null if (str == null) ( return null; ) else if (str.length() == 0) ( // terminating condition for recursion permutations.add(""); return permutations; ) // get the first character char first = str.charAt(0); // get the remaining substring String sub = str.substring(1); // make recursive call to getPermutation() Set words = getPermutation(sub); // access each element from words for (String strNew : words) ( for (int i = 0;i<=strNew.length();i++)( // insert the permutation to the set permutations.add(strNew.substring(0, i) + first + strNew.substring(i)); ) ) return permutations; ) public static void main(String() args) ( // create an object of scanner class Scanner input = new Scanner(System.in); // take input from users System.out.print("Enter the string: "); String data = input.nextLine(); System.out.println("Permutations of " + data + ": " + getPermutation(data)); ) )

Salida

 Ingrese la cadena: ABC Permutaciones de ABC: (ACB, BCA, ABC, CBA, BAC, CAB)

En Java, hemos utilizado la recursividad para calcular todas las permutaciones de una cadena. Aquí, almacenamos la permutación en un conjunto. Entonces, no habrá permutación duplicada.

Articulos interesantes...