请教算法:n组字母ABC进行排列,要求相邻字母不能相同
如:n=2,则表示,有两组字母ABC(即A,B,C,A,B,C)进行排列,相邻字母不能相同,将排列结果打印出来。
请高手们指导一下,用什么算法更容易实现。如能贴出代码,那就更好啦!
[解决办法]
先把0-5分成3组不相邻的数:
(0,2)(1,4)(3,5)
(0,3)(1,4)(2,5)
(0,3)(1,5)(2,4)
(0,4)(1,3)(2,5)
(0,5),(1,3)(2,4)
把ABC分别赋值对应的两个位置就是答案了
[解决办法]
第一步:
我感觉是排列组合 先输出所有排列组合的结果
第二部
一个for过去 把相邻字母相同的数字 过滤掉
这个方法耗时长,耗内存多。。。
没办法,算法不好
[解决办法]