永发信息网

我希望将123、132、213、231、312、321全排列输出为1,2,3,请大侠给出算法或者java代码,

答案:1  悬赏:80  手机版
解决时间 2021-08-24 14:53
我希望将123、132、213、231、312、321全排列输出为1,2,3,请大侠给出算法或者java代码,
如果有排列是123、124、134、213.432共24个,即P43,能够输出1,2,3,4
换种说法,我从m个数字里面选n个数字按照一定的顺序排列起来,数学叫Pmn,上下标打不起,如果m=n,就叫全排列.例如m=n=3,其排列为:123、132、213、231、312、321共6组,P33=3*2*1=6;如果m=4,n=3,起排列为:123、124、132、134..431、432共24组,P43=4*3*2=24;现在我希望的是如果我已知一堆排列,能找出是哪些数字组合在一起才能得到这些排列.例如:已知排列有123、132、213、231、312、321,需要输出1、2、3,但如果我有123、132、213、231、312、412,则没有任何输出;再如有排列123、124、132、134..431、432共24组,需要输出1、2、3、4,不知现在是否说清楚了
最佳答案

遍历所有排列的数据:例 123 将之拆分的 ‘1’ ‘2’ ‘3‘ 用一数组存取存在的数,虽然这办法效率不高,但能你实现你的所要的效果,你按这个思想写一下吧.实在不行,我再帮你写一个
再问: 不是很明白你的思路,你要能写,最好不过!
再答: 这几天有事,我写了一个,你参考一下吧: public class Sample { public static void main(String[] args) { String[] data = {123,12,234}; //你的排列数据 char []c = new char[32]; //存放将String转换为char数组 char ret[] = new char[32]; //存放结果 int i,dlength,a,j,z,flag; a = 0; for(i = 0; i < 3; i++) { c = data[i].toCharArray(); dlength = data[i].length(); for(j = 0; j < dlength; j++) { flag = 1; for(z = 0; z < a; z++) { if(ret[z] == c[j]) { flag = 0; break; } } if(flag == 1) ret[a++] = c[j]; } } System.out.print(ret: ); for(i = 0; i < a; i++) System.out.print(ret[i]+ ); } }


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问这个是什么意思啊
长葛市许昌瑞康医药公司增福庙b零售部这个地
挤出成型的工艺过程,塑料瓶的加工过程
手烫伤有什么好办法吗
新华区平顶山逍遥胡辣汤地址在哪里啊
表示初夏的诗句一年级,求:形容气温高的古诗
杰伦怎么时候结婚?怎么时候会退出娱乐圈?我
DNF死灵带什么装备?
工艺美术是什么,工艺美术是什么的?
芙蓉区长沙南元宫地址是什么,有没有知道的
下列句子朗读时,停顿处理不正确的是?
各位帮帮忙,跪求了
電影妄想粵語版的在線觀看或下載
急求世界著名城市地理位置坐标?谢谢
网上银行注销问题
推荐资讯
《月牙湾》歌词
DVD光盘为什么没有声音
绵阳什么地方好耍
初中英语星级训练——阅读理解+完形填空(八年
体质易疲劳,眼睛累痛,怎么保健?
新蔡县驻马店国家电网(新蔡佛阁寺供电营业厅)
三角形 正方形 长方形 梯形 圆形 平行四边形
冷水滩区永州市冷水滩区劳动保障监察大队在什
为什么心里老实忘记不了一个人
凤凰县湘西谷谷软装饰地址在哪里啊
五峰土家族自治县宜昌人和山庄这个地址在什么
明军百夫长的做标
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?