zoukankan      html  css  js  c++  java
  • 算法 字符串的排列组合

    package ACM;
    
    import java.util.ArrayList;
    import java.util.TreeSet;
    
    public class Solution13 {
    
        public  ArrayList<String> Permu(String str){
            ArrayList<String> result = new ArrayList<String>();
    
            if (str==null || str.length()==0){
                return result;
            }
    
            char[] chars = str.toCharArray();
            TreeSet<String> temp = new TreeSet<>();
            Permu(chars,0,temp);
            result.addAll(temp);
            return result;
        }
        public void Permu(char[]chars, int begin, TreeSet<String> result){
            if(chars==null || chars.length==0|| begin<0 ||begin>chars.length-1){return;}
    
            if(begin==chars.length-1){
                result.add(String.valueOf(chars));
            }else {
                for(int i = begin; i<chars.length-1; i++){
                    swap(chars,begin,i);
                    Permu(chars,begin+1,result);
                    swap(chars,begin,i);
                }
            }
    
        }
     public void swap(char[] x, int a, int b){
             char t = x[a];
             x[a]=x[b];
             x[b]=t;
     }
    
      public static  void main(String[] args){
         String s = "adsgf";
          Solution13 s1 = new Solution13();
          System.out.println(s1.Permu(s));
      }
    
    
    }
    

      

  • 相关阅读:
    linux之参数实用讲解
    Linux脚本中调用SQL,RMAN脚本
    shell for参数
    Linux Shell参数替换
    Python OOP(1)
    Python 不可变对象
    Python set
    Python tuple
    Python list,tuple,dict and set
    Python 可变长度函数参数
  • 原文地址:https://www.cnblogs.com/toov5/p/8830848.html
Copyright © 2011-2022 走看看