字符串的排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符abc所能排列出来的所有字符串abcacbbacbcacabcba

 1 public void putall(String s){
 2          StringBuffer ss = new StringBuffer(s);
 3          int pointer = 0;
 4          outputK(ss,pointer);
 5      }
 6      public void outputK(StringBuffer s, int pointer){
 7          int cur = pointer;
 8          if(pointer == s.length()){
 9              System.out.println(s.toString());
10          }
11          else{
12              for(int i = pointer; i < s.length(); i ++){
13 //                 StringBuffer ss = s; 
14                  char temp = s.charAt(pointer);
15                  s.setCharAt(pointer,s.charAt(i));
16                  s.setCharAt(i,temp);
17                  outputK(s,pointer+1);
18                  //recover to the string before change
19                  s.setCharAt(i, s.charAt(pointer));
20                  s.setCharAt(pointer,temp);
21                  
22              }
23          }
24      }
25      public void pro10(){
26          String s = "abc";
27          putall(s);
28      }

 

posted on 2013-04-16 03:29  Step-BY-Step  阅读(143)  评论(0编辑  收藏  举报

导航