面试题三十八:字符串的全排列

输入一个字符串,打印出所有排列方式,即将字符串进行全排列输出
分析:把字符串分成两个部分,第一个固定和其他排列,以此类推大问题小化,无重复排列的问题,类似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;
                            }
            }
     }

 

posted @ 2020-03-29 16:22  浪波激泥  阅读(148)  评论(0编辑  收藏  举报