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

Tutorial Básico de Java

Controle de Fluxo Java

Java Matrizes

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Lista List do Java

Fila Queue do Java

Conjunto Map do Java

Conjunto Set do Java

Entrada e saída do Java (I/O)

Reader do Java/Writer

Outros tópicos do Java

Programa Java para calcular todas as permutações de uma string

Exemplos completos Java

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

Exemplo: Programa Java para obter todas as permutações de uma string

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.

Exemplos completos Java