日期:2014-05-20  浏览次数:20793 次

编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 例如: 原始字符串是"abc",打印得到下列所有组合情况 "a" "b" "c" "ab" "b
请问大神这么做怎么错了
package exam;
import java.io.*;
import java.util.*;
public class pllll {
public static void main(String[] args)throws Exception {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String p=br.readLine();  
yy(br,p );
}
public static void yy(BufferedReader br,String p ) throws Exception
{
int i,j;     String ee=p;   String r = null,t = null,q=null ; 
 List<String>list=new ArrayList<String>();

///////////////////////////////////////////////////////////////////    
      for(i=0;i<p.length();i++)
      {
    // sop(p.substring(i,i+1)+" ");////////////第一行
      }
   // System.out.println();
////////////////////////////////////////////////////////////////////   
for(i=0;i<p.length();i++)
{
for(j=0;j<p.length();j++)
 {
if(i!=j)
 {
    r=p.substring(i, i+1);
    t=ee.substring(j,j+ 1);
    q=r+t;
 list.add(q);
//sop(q+" "); ////////////第二行
 }
}
}
////////////////////////////////////////////////////////////////////
 Iterator<String> iterator = list.iterator();
while(iterator.hasNext())
        { 
     ee= iterator.next(); 
     //sop(ee);
   yy(ee,p);
     }

}
public static void yy(String ee,String p) throws Exception
{ List<String>list=new ArrayList<String>();
int i,j;  int k=2;
String r = null,t = null,q=null ;
for(i=0;i<p.length();i++)
 {  
    r=p.substring(i, i+1);
    t=ee.substring(0, k);//as ad sa sd da ds ,(0, 2)就是1,2位的,每个(as)(ad)....都是1,2位的即sop(t+" ");输出as ad sa sd da ds
    q=r+t;
    list.add(q);
sop(q+" ");
 }
 Iterator<String> iterator = list.iterator();
      while(iterator.hasNext())
     { 
      ee= iterator.next(); 
         if(k<p.length()+1)
           { k++;
          yy(ee,p) ;
           }
     }    
}
public static void sop(Object obj)
{
System.out.print(obj);
}
}

------解决方案--------------------
public static void yy(String ee,String p) 
目测死循环了,楼主的程序写的不对了,得到的组合又会再组合,还有代码太乱
------解决方案--------------------
没看懂楼主的意思
------解决方案--------------------
程序错,是小事,程序错只是结果,怕的是,你的思想是错的,楼主发的几个关于排序组合的贴子都看了,确实没看懂楼主是怎么样的想法。