English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste exemplo, vamos aprender a calcular todas as permutações de uma string no Java.
Para entender este exemplo, você deve entender o seguinteProgramação JavaTema:
As permutações de uma string são todas as novas strings possíveis que podem ser formadas trocando a posição dos caracteres da string. Por exemplo, a string ABC permutações disponíveis [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) { //criar conjunto set para evitar permutações repetidas Set<String> permutations = new HashSet<String>(); //verificar se a string está vazia if (str == null) { return null; } else if (str.length() == 0) { //condição de terminação recursiva permutations.add(""); return permutations; } //Obter o primeiro caractere char first = str.charAt(0); //Obter a substring restante String sub = str.substring(1); //chamada recursiva getPermutation() Set<String> words = getPermutation(sub); //percorrer words for (String strNew : words) { for (int i = 0; i <= strNew.length(); i++{ //Insira a permutação no conjunto set permutations.add(strNew.substring(0, i)) + first + strNew.substring(i)); } } return permutations; } public static void main(String[] args) { //Criar um objeto da classe Scanner Scanner input = new Scanner(System.in); // Aceitar a entrada do usuário System.out.print("String de entrada: "); String data = input.nextLine(); System.out.println(data + " " das permutações são: " + getPermutation(data)); } }
Resultados de saída
String de entrada: ABC As permutações de ABC são: [ACB, BCA, ABC, CBA, BAC, CAB]
Em Java, usamos recursão para calcular todas as permutações de uma string. Aqui, armazenamos as permutações em um conjunto. Portanto, não haverá permutações repetidas.