用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。import java.util.Vector;public class Assemble { public void getAssemble(String result, Vector<Character> source) {
if ((result.length() == 3) && (result.charAt(2) == '4'))
return; if (result.endsWith("35") || result.endsWith("53"))
return; if (result.length() == 6) {
System.out.println(result);
return;
} for (int i = 0; i < source.size(); i++) {
Vector<Character> t = (Vector<Character>) source.clone();
t.remove(i);
getAssemble(result + source.get(i), t);
}
} public static void main(String[] args) { Assemble as = new Assemble();
Vector<Character> v = new Vector<Character>();
v.add('1');
v.add('2');
v.add('2');
v.add('3');
v.add('4');
v.add('5');
as.getAssemble("", v); System.out.println("Done");
}}
这个程序写的很短,但看不懂, 能不能解释一下