I dette eksempel lærer vi at beregne alle permutationer af strengen i Java.
For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:
- Java-streng
- Java-rekursion
- Java-scannerklasse
Permutation af strengen betyder alle de mulige nye strenge, der kan dannes ved at udveksle placeringen af strengens tegn. For eksempel har streng ABC permutationer (ABC, ACB, BAC, BCA, CAB, CBA) .
Eksempel: Java-program for at få al permutation af en streng
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)); ) )
Produktion
Indtast strengen: ABC Permutationer af ABC: (ACB, BCA, ABC, CBA, BAC, CAB)
I Java har vi brugt rekursionen til at beregne alle permutationer af en streng. Her gemmer vi permutationen i et sæt. Så der vil ikke være nogen duplikatpermutation.