用java把1234各种排序都打印出来,如:1234,1243,1324,1342...(Hint:深度排序算法)。
面试时哪晓得深度什么子的,就直接用Arrays.asList返回的List的remove方法(当然,这是错的;Arrays.asList()返回的List是长度一定的,不能remove,抛出unsupportoperation异常)。上网看了看深度排序算法,终于实现了,现贴上,希望抛砖引玉,大家又什么更好的算法:public class Sorter {
public static void main(String[] args){
sort();
} public static void sort() {
StringBuffer str = new StringBuffer();
for(int i=0;i<4;i++) {
int[] intArrays = new int[]{1, 2, 3, 4};
str.append(intArrays[i]);
for(int j=0;j<3;j++) {
int[] secondArrays = getOthers(intArrays, intArrays[i]);
str.append(secondArrays[j]);
for(int k=0;k<2;k++) {
int[] thirdArrays =getOthers(secondArrays, secondArrays[j]);
str.append(thirdArrays[k]);
str.append(getOthers(thirdArrays, thirdArrays[k])[0]); //找到最深处,打印这种情况
System.out.println(str.toString());

//清除这种情况的操作,为新的情况准备
str.delete(2, 4);
} //清除这种情况的操作,为新的情况准备
str.delete(1, 2);
}

//清除这种情况的操作,为新的情况准备
str.delete(0, 1);
}
}

/*
*返回除了me元素的其他元素的数组
*/
public static int[] getOthers(int[] old, int me) {
int[] arrays = new int[old.length - 1];
int index = 0;
for(int i=0;i<old.length;i++) {
if(old[i] != me) {
arrays[index++] = old[i];
}
}
return arrays;
}
}

解决方案 »

  1.   

    这代码可行啊,我书上看到的。。import java.util.*;
     import java.io.*;
    public class Test{  public static void main(String[] args)throws Exception{    String [] array=new String[]{'1','2','3','4'};    listAll(Arrays.asList(array),'');}
    public staic void listAll(List candidate,String prefix){   // if(candidate.isEmpty()){
             System.out.println(prefix);
       //   }
         for(int i=1;i<candidate.size();i++){          List temp =new LinkedList(candidate);          listAll(temp,prefix+temp.remove(i);
         }
      }
    }
      

  2.   

    ccc_moriya,你应该先编译下你的代码(''代表字符,""才代表字符串),而且fix这些,程序结果不是期望的。
    1234的任何一种顺序,1234,1243,2314,4123...
      

  3.   

    fix这些小错误,代码是可以运行,结果不是题目所期望的啊。
    期望是:1234,1243,1324,1342,1423,1432,2134,2143,2314,2341,2413,2431......
      

  4.   

    http://www.java3z.com/cwbwebhome/article/article3/3270.html?id=929
    在这里有很多常用算法,自己慢慢学吧!
      

  5.   

    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;public class huiwen1
    {
      public static void main(String[] args) throws IOException
      {
      System.out.println("请输入:");
      String ss = new BufferedReader(new InputStreamReader(System.in)).readLine().toString();
      if(ss.equals(new StringBuffer(ss).reverse().toString()))
      System.out.println("是回文");
      else
      System.out.println("不是回文");
      }}
      

  6.   

    import java.io.BufferedInputStream;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;public class huiwen1
    {
      public static void main(String[] args) throws IOException
      {
      System.out.println("请输入:");
      String ss = new BufferedReader(new InputStreamReader(System.in)).readLine().toString();
      if(ss.equals(new StringBuffer(ss).reverse().toString()))
      System.out.println("是回文");
      else
      System.out.println("不是回文");
      }}
      

  7.   

     public class PXX {
     
       public static void main(String[]args) {
          
            for(int i=1 ;i<5;i++){
               for(int j=1;j<5;j++){
          
                        
                 for(int k=1;k<5;k++) {
                    for(int l=1;l<5;l++)
                    {
                     if(i!=j&i!=k&i!=l&j!=k&j!=l&k!=l){
                    
                                 System.out.print(i);
                                 System.out.print(j);
                                 System.out.print(k);
                                 System.out.print(l);
                                 System.out.println();
                                                     
                            }                 
                    }
                       
                }
               
                 }
               
              }
       
              }
     
     }