アルゴリズム問題の思い


今日同僚がこの問題を聞いて、アルゴリズムを考えて、メモして忘れました.

 /**
	 *    :{3,2,2,6,7,8},      ,  7         ,6 8    ,       
	 * 
	 * @param args
	 * @author [email protected] 2009-10-12
	 */
	public static void main(String[] args) {
		//{3,2,2,6,7,8},  7         ,6 8    ,       
		
		List<String> list = new ArrayList<String>();
		for (int i = 223678; i <= 876322; i++)
			list.add(i + "");
		
		int size = 0;// all size
		
		for (String s : list) {
			if (s.indexOf("0") != -1 
					|| s.indexOf("1") != -1
					|| s.indexOf("4") != -1 
					|| s.indexOf("5") != -1
					|| s.indexOf("9") != -1)// except 0,1,4,5,9
				continue;
			
			if (s.indexOf("2") == -1 
					|| s.indexOf("3") == -1
					|| s.indexOf("6") == -1
					|| s.indexOf("7") == -1
					|| s.indexOf("8") == -1
					|| s.indexOf("2", s.indexOf("2") + 1) == -1)// contain all 3,2,2,6,7,8
				continue;
			
			if (s.indexOf("7") == 1)// except 7 in second position 
				continue;
			
			if (s.indexOf("68") != -1 || s.indexOf("86") != -1)// except adjoining 6,8  
				continue;
			
			size++;
			
			System.out.println(s);
		}
		
		System.out.println("All size --> " + size);// All size --> 198
	}