字符串全排列

public class StringPermutation {

	/**
	 * 方法名称:main()
	 * 方法描述:
	 * @param  
	 * @return String    
	 * @Exception 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		char[] ch = "aba".toCharArray();
		permutation(ch, 0);
	}
	
	private static boolean isSwap(char[] s, int begin, int end){
		
		for(int i=begin;i<end;i++){
			if(s[i] == s[end]){
				return false;
			}
		}
		return true;
	}
	
	/**
	 * 方法名称:permutation()
	 * 方法描述:index:当前第几个数, size:共有多少个数
	 * @param  
	 * @return String    
	 * @Exception 
	 */
	public static void permutation(char[] s, int index){
		if(index >= s.length){
			System.out.println(new String (s));
		}else{
			//begin 与其后面的字符进行交换
			for(int i=index;i<s.length;i++){
				if(isSwap(s, index, i)){
					swap(s, index, i);
					permutation(s, index+1);
					swap(s, index, i);
					
				}
			}
		}
	}
	
	public static void swap(char[] s,int i, int j){
		char temp = s[i];
		s[i] = s[j];
		s[j] = temp;
	}

}
参考:http://blog.csdn.net/hackbuteer1/article/details/7462447
 



你可能感兴趣的:(字符串全排列)