BAEL-5646: String permutation examples (#12595)
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
package com.baeldung.algorithms.stringpermutation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ArrayHelper {
|
||||
|
||||
private ArrayHelper() {
|
||||
}
|
||||
|
||||
static List<Character> toCharacterList(final String string) {
|
||||
return string.chars().mapToObj(s -> ((char) s)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.baeldung.algorithms.stringpermutation;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.iterators.PermutationIterator;
|
||||
|
||||
public class StringPermutationsApache {
|
||||
|
||||
public Collection<List<Character>> eagerPermutationWithRepetitions(final String string) {
|
||||
final List<Character> characters = ArrayHelper.toCharacterList(string);
|
||||
return CollectionUtils.permutations(characters);
|
||||
}
|
||||
|
||||
public PermutationIterator<Character> lazyPermutationWithoutRepetitions(final String string) {
|
||||
final List<Character> characters = ArrayHelper.toCharacterList(string);
|
||||
return new PermutationIterator<>(characters);
|
||||
}
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.baeldung.algorithms.stringpermutation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.paukov.combinatorics3.Generator;
|
||||
import org.paukov.combinatorics3.PermutationGenerator.TreatDuplicatesAs;
|
||||
|
||||
public class StringPermutationsCombinatoricsLib {
|
||||
|
||||
public List<List<Character>> permutationWithoutRepetitions(final String string) {
|
||||
List<Character> chars = ArrayHelper.toCharacterList(string);
|
||||
return Generator.permutation(chars)
|
||||
.simple()
|
||||
.stream()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<List<Character>> permutationWithRepetitions(final String string) {
|
||||
List<Character> chars = ArrayHelper.toCharacterList(string);
|
||||
return Generator.permutation(chars)
|
||||
.simple(TreatDuplicatesAs.IDENTICAL)
|
||||
.stream()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.baeldung.algorithms.stringpermutation;
|
||||
|
||||
import com.google.common.collect.Collections2;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class StringPermutationsGuava {
|
||||
|
||||
public Collection<List<Character>> permutationWithRepetitions(final String string) {
|
||||
final List<Character> characters = ArrayHelper.toCharacterList(string);
|
||||
return Collections2.permutations(characters);
|
||||
}
|
||||
public Collection<List<Character>> permutationWithoutRepetitions(final String string) {
|
||||
final List<Character> characters = ArrayHelper.toCharacterList(string);
|
||||
return Collections2.orderedPermutations(characters);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user