【发布时间】:2012-06-18 20:10:21
【问题描述】:
我有一个有序的字符串需要呈现给用户:
ABCCDDCBBBCBBDDBCAAA
用'B'表示的对象被标记,这样2个Bs后面会有一个'~'。
AB~CCDDCB~BBCBBDDBCAAA
AB~CCDDCBB~BCBBDDBCAAA
AB~CCDDCBBB~CBBDDBCAAA
and so on...
我使用了 Howard Hinnant 的 combinations library,它适用于这个简单的案例。我的测试代码使用位置向量作为通过 for_each_combination 发送的整数。
但是,当我有多个 B 标记时,我不知道该怎么办。
例如,总共需要标记4B,2个'~'和2个'#'
AB~CCDDCB~B#B#CBBDDBCAAA
AB#CCDDCB~B~B#CBBDDBCAAA
AB~CCDDCB#B~B#CBBDDBCAAA
AB#CCDDCB#B~B~CBBDDBCAAA
ABCCDDCB~B~B#CB#BDDBCAAA
and so on...
我写出的伪代码是级联的。在第一个 for_each_combination 之后,对于每个结果组合,将每隔一个位置复制到另一个向量并执行另一个 for_each_combination。
考虑到我将使用的组合数量,我希望有更好的方法。
【问题讨论】:
标签: c++ combinations data-partitioning