假设有n个级别,在每个级别中你可以选择两个可能的字符中的一个,打印所有可能的字符串,
例如: -
假设我们有3个级别: -
level1: - ab
level2: - cd
level3: - ef
可能的字符串是: - 1. ace
2. acf
3. ade
4. adf
5. bce
6. bcf
7. bde
8. bdf
我知道样本空间是2 ^ n所以所需的时间是O(2 ^ n),但我无法弄清楚如何编写它.有什么可能的方法和我必须阅读哪些主题来解决这些问题?
拥有两个选项的功能使这很容易.把它归为一点.像这样的东西:
char buf[3];
for(unsigned i = 0; i < 10; ++i)
{
buf[0] = i & 4 ? 'b' : 'a';
buf[1] = i & 2 ? 'd' : 'c';
buf[2] = i & 1 ? 'f' : 'e';
std::string str = std::string(buf, 3);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |