字符排序

来源:互联网 发布:全角替换为半角 js 编辑:程序博客网 时间:2024/04/29 05:08

题目:

    算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。    如:给定 A、B、C三个不同的字符,    则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。

源代码:

import java.util.Scanner;import java.util.Vector;public class ZiFuPX {    static int count=0;    public void shen(Vector<Character> begin,Vector<Character> end)    {        if(begin.size()==0)        {            for(int i=0;i<end.size();i++)            {                System.out.print(end.elementAt(i));            }            System.out.println();            count++;        }        for(int i=0;i<begin.size();i++)        {            Vector<Character> cbegin=new Vector<>(begin);            Vector<Character> cend=new Vector<>(end);            cend.addElement(cbegin.elementAt(i));            cbegin.remove(i);            shen(cbegin,cend);        }    }    public static void main(String[] args) {        // TODO 自动生成的方法存根        Scanner cin=new Scanner(System.in);        int n=cin.nextInt();        Vector<Character> begin=new Vector<>();        Vector<Character> end=new Vector<>();        for(int i=0;i<n;i++)        {            begin.addElement((char)('A'+i));        }        new ZiFuPX().shen(begin,end);        System.out.println(count);    }}
0 0
原创粉丝点击