数组A,B ,通过层数 求得排列组合
第一层:A、B
第二次:AB(去重,并且不能AA,BB)
AB
AA
BA
BB
第三层:类似上
AAA
ABA
ABB
AAB
BAA
BAB
BBA
BBB
求个思路(解题答案更好了),数组不一定是A,B可能是A,B,C等。层数也不是固定。
15 回答8.4k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.3k 阅读
4 回答4.4k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答3.1k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
1 回答2.3k 阅读
2 回答4.1k 阅读
方法一:数位替换
可以递增一个 \( m \) 进制数,替换每一数位即可,以 \( AB,m=2 \) 层为例
$$ 00,01,10,11 \Rightarrow AA,AB,BA,BB $$
不希望每一位都相同,判断是否能除尽 \( 11 \) 即可
参考代码(Python):
方法二:回溯
每次选一个字符添加到末尾,然后 DFS(或者自己维护一个栈),同时可以维护一个前面全部字符是否相同的标志
DFS 参考代码(Python):