zoukankan      html  css  js  c++  java
  • 递归和动态规划——**字符串的全排列

    打印一个字符串的全部排列

    public class CC_Print_All_Permutation {
        public static void printAllPermutation(String str){
            if(str == null || str.length() == 0) return;
            char[] chars = str.toCharArray();
            permutation(chars, 0);
        }
    
        public static void permutation(char[] chars, int index){
            if(index == chars.length){
                System.out.println(String.valueOf(chars));
                return;
            }
            HashSet<Character> hashSet = new HashSet<>();
            for(int i = index; i < chars.length; i++){
                if(!hashSet.contains( chars[i])){
                    hashSet.add(chars[i]);
                    swap(chars, index, i);
                    permutation( chars, index + 1 );
                    swap(chars, index, i);
                }
            }
        }
    
        public static void swap(char[] chars, int i, int j){
            char temp = chars[i];
            chars[i] = chars[j];
            chars[j] = temp;
        }
    
        public static void main(String[] args){
            printAllPermutation( "abc" );
        }
    }
    

      

     

  • 相关阅读:
    python--随机生成汉字、数字
    PyCharm详细教程
    Struts2 笔记
    Servlet读取配置文件的三种方式
    Java笔记(十)
    Java笔记(九)
    Java笔记(八)
    Java笔记(七)
    Java笔记(六)
    Java笔记(五)
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/8965813.html
Copyright © 2011-2022 走看看