Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 优化包含N个项的堆栈以满足尽可能多的字符串排列_String_Algorithm_Permutation - Fatal编程技术网

String 优化包含N个项的堆栈以满足尽可能多的字符串排列

String 优化包含N个项的堆栈以满足尽可能多的字符串排列,string,algorithm,permutation,String,Algorithm,Permutation,我想找到一种算法,它可以执行以下操作: 我有一个排列列表 每个可容纳1到4个字符串(允许重复) 相同的字符串可以出现在许多排列中 我还有一个可以容纳N个字符串的堆栈 优化堆栈是一个由N个字符串组成的列表,满足列表中最多的排列 比如说,, 假设我有以下排列: [aaa][aaa][bbb][ccc] [aaa][ddd][ddd] [ccc] N是4 优化后的堆栈将为[aaa][aaa][bbb][ccc] 因为这个堆栈满足2个置换 注意:如果同一字符串在一个排列中出现的次数超过K次,则它在堆栈中

我想找到一种算法,它可以执行以下操作:

我有一个排列列表

每个可容纳1到4个字符串(允许重复)

相同的字符串可以出现在许多排列中

我还有一个可以容纳N个字符串的堆栈

优化堆栈是一个由N个字符串组成的列表,满足列表中最多的排列

比如说,, 假设我有以下排列:

  • [aaa][aaa][bbb][ccc]
  • [aaa][ddd][ddd]
  • [ccc]
  • N是4

    优化后的堆栈将为[aaa][aaa][bbb][ccc] 因为这个堆栈满足2个置换

    注意:如果同一字符串在一个排列中出现的次数超过K次,则它在堆栈中也应至少出现K次,以满足该排列的需要


    我正在寻找一种有效的算法,以找到给定N(堆栈大小)和排列列表的优化堆栈。从您的示例中,您的意思是:1)如果排列a和B中有相同的字符串,我们只取1。2) 我们应该考虑重复,意思是如果我们在排列A中有相同的字符串,有2个重复,在排列B中有3个重复,那么我们就取排列B中的所有3个。这就是你搜索的吗?如果输入是1)[aaa][bbb][bbb][ccc],2)[aaa aaa][aaa ddd][ddd],3][ccc],结果应该如何?以下输出是否正确:[aaa][aaa][bbb][bbb][ddd][ddd][ccc][ccc]?