Algorithm to list unique permutations of string with duplicate letters

后端 未结 3 1360
星月不相逢
星月不相逢 2020-11-30 11:48

For example, string \"AAABBB\" will have permutations: \"ABAABB\", \"BBAABA\", \"ABABAB\", etc

What\'s a good algorithm for generating the permutations? (And what\

3条回答
  •  南笙
    南笙 (楼主)
    2020-11-30 12:47

    For a multiset, you can solve recursively by position (JavaScript code):

    function f(multiset,counters,result){
      if (counters.every(x => x === 0)){
        console.log(result);
        return;
      }
    
      for (var i=0; i 0){
          _counters = counters.slice();
          _counters[i]--;
          f(multiset,_counters,result + multiset[i]);
        }
      }
    }
    
    f(['A','B'],[3,3],'');

提交回复
热议问题