Given a string, display all its fully arranged results in the form of an array, requiring no duplicate results.
For example:
I have the string "aabb", and its full permutation result should be 4*3*2*1=24, but considering the requirement that there is no duplication, So the results are 6, as follows:
['aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa']
So the question The key lies in two aspects:
1. How to find the complete arrangement
2. How to deduplicate the results
To find the complete arrangement, you can use either recursive or non-recursive methods .
Deduplication can be achieved using a hash.
//递归求解全排列 function permutations(string) { //用于存放去重结果的hash var hash = {}; //遍历函数 //from:要遍历的字符数组 //to:记录路径的字符数组 var traverse = function(from,to){ //若当前深度没有达到叶子 if(to.length < string.length){ for(var i=0;i Copy after login
The above is the fun JavaScript question: full arrangement and deduplication. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!