面试题三十八:字符串的全排列
输入一个字符串,打印出所有排列方式,即将字符串进行全排列输出
分析:把字符串分成两个部分,第一个固定和其他排列,以此类推大问题小化,无重复排列的问题,类似9*8*7*6*5*4*3*2*1的思想
public static void Permutation( char [] pStr){ if( pStr==null) return ; Permutation( pStr ,0 ); } public static void Permutation( char [] str, int be){ if( be==str.length){ for( int i=0;i<str.length;i++) System.out.print( str[i]+ " "); System.out.println(); } else{ for( int i=be ;i<str.length ;i++) { char temp=str[i ]; str[i ] =str[be]; str[ be] =temp; Permutation( str ,be+1); temp=str[i ]; str[i ] =str[be]; str[ be] =temp; } } }
浪波激泥