这是给您的编程难题:
例如,给定一对字符串和对应数字的[[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]
列表,请输出另一个列表,该列表将仅以以下方式包含字符串:
任何字符串的总计数应完全等于输入数据中其对应的数字。
不应在序列中相邻重复任何字符串,并且每个字符串都应出现在输出列表中。
只要不超过两个规则,就应该随机选择下一个字符串。每个解决方案的选择概率均应为非零。
如果无法组合,则输出应为just
0
。
输入列表可以以任何顺序(排序或未排序)给出,列表中的字符串可以具有任何长度。
上述样本输入1的样本输出
[A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G]
输入样本2:
[[A,6],[B,1],[C,1]]
第二个输入的输出:
0
因为根据规则无法列出。
样本输入3:
[[AC,3],[BD,2]]
有效输出: [AC,BD,AC,BD,AC]
无效的输出: [AC,BD,AC,AC,BD]
如果需要进一步澄清,请随时在评论中告诉我,我将立即采取行动。
这是代码高尔夫球,因此每种语言的最短代码以字节为单位!