• 字符串的排列


    字符串的排列

    输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

    代码实现

    package 剑指offer;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;

    /**
     * @author WangXiaoeZhe
     * @Date: Created in 2019/11/22 18:02
     * @description:
     */

    public class Main16 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String s = sc.next();
            ArrayList<String> permutation = Permutation(s);
            for (String s1 : permutation) {
                System.out.println(s1);
            }
        }

        public static ArrayList<String> Permutation(String str) {
            ArrayList<String> list = new ArrayList<String>();
            char[] ch = str.toCharArray();
            Permu(ch, 0list);
            Collections.sort(list);
            return  list;
        }

        public static void Permu(char[] str, int i, ArrayList<String> list) {
            if (str == null) {
                return;
            }
            if (i == str.length - 1) {
                if(list.contains(String.valueOf(str))){
                    return;
                }
                list.add(String.valueOf(str));
            } else {
                for (int j = i; j < str.length; j++) {
                    swap(str,i,j);
                    Permu(str, i + 1list);
                    swap(str,i,j);
                }
            }

        }
        public static void swap(char[] str, int i, int j) {
            char tmp = str[i];
            str[i] = str[j];
            str[j] = tmp;
        }
    }
  • 相关阅读:
    HDU 2874 Connections between cities(LCA离线算法实现)
    LCA离线算法Tarjan详解
    HDU 2586 How far away ?(LCA在线算法实现)
    LCA在线算法详解
    LA 4287 等价性证明(强连通分量缩点)
    POJ 2117 Electricity(割点求连通分量)
    ZOJ 1015 Fishing Net(弦图判定)
    BZOJ 1006: [HNOI2008]神奇的国度(弦图染色)
    POJ 2976 Dropping tests(分数规划)
    BZOJ 1003: [ZJOI2006]物流运输(spfa+dp)
  • 原文地址:https://www.cnblogs.com/wuhen8866/p/11913169.html
Copyright © 2020-2023  润新知