生成子集而不会干扰订单

时间:2012-11-15 19:44:27

标签: subset

给定一组字母S = {a,b,c,d,e}

如果输入k = 3?

,如何生成以下子集?

ABC ABD 安倍晋三 ACD 高手 ADE BCD BCE BDE CDE

子集不违反S中字母的顺序。 这个问题的名称是什么,解决方案是什么?

1 个答案:

答案 0 :(得分:0)

  1. 考虑一个二进制字符串,它有5个位置(或者S中有字符的位数)由k 1和(| S | -k)0组成。
  2. 生成上述字符串的所有(| S |!/(k!*(| S | -k)!))排列。
  3. 现在输出与1对应的字符。这不会违反S中字符的顺序。
相关问题