日期:2014-05-20 浏览次数:20753 次
import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class Test { public static void main(String args[]) { ArrayList list = new ArrayList(); //计算出每一行的所有情况 for(int i=0;i<3;i++) { for(int j=i+1;j<4;j++) { list.add(i+""+j); } } //取四个(每行都可能是相同的位置)出来去比较位置的重复量 for(int i=0;i<list.size();i++) { for(int j=0;j<list.size();j++) { for(int k=0;k<list.size();k++) { for(int l=0;l<list.size();l++) { String str = (String)list.get(i)+(String)list.get(j)+(String)list.get(k)+(String)list.get(l); //统计每个字符出现的次数,如果某一个字符数超过3了,那就是不合法的. int length = str.length(); Map<String, Integer> xxx = new HashMap<String, Integer>(); boolean flag = false; for(int x=0;x<length;x++) { String t = str.charAt(x)+""; if(xxx.get(t)!=null) { if(xxx.get(t)>1) { flag=true; break; }else { xxx.put(t,xxx.get(t)+1); } }else { xxx.put(t,1); } } if(!flag) { System.out.println(str); } } } } } } }