• 符串的排列


    输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 
    输入描述:
    输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
     
     1 import java.util.*;
     2 public class Solution {
     3     public ArrayList<String> Permutation(String str) {
     4         ArrayList<String> re = new ArrayList<String>();
     5         if (str == null || str.length() == 0) {
     6             return re;
     7         }
     8         HashSet<String> set = new HashSet<String>();
     9         fun(set, str.toCharArray(), 0);
    10         re.addAll(set);
    11         Collections.sort(re);
    12         return re;
    13     }
    14     void fun(HashSet<String> re, char[] str, int k) {
    15         if (k == str.length) {
    16             re.add(new String(str));
    17             return;
    18         }
    19         for (int i = k; i < str.length; i++) {
    20             swap(str, i, k);
    21             fun(re, str, k + 1);
    22             swap(str, i, k);
    23         }
    24     }
    25     void swap(char[] str, int i, int j) {
    26         if (i != j) {
    27             char t = str[i];
    28             str[i] = str[j];
    29             str[j] = t;
    30         }
    31     }
    32 }
     
     
  • 相关阅读:
    测试人员在软件开发过程中的任务是什么?
    python关于文件操作
    字符编码
    内置方法
    数据类型的基本使用
    Python的流程控制
    Python与用户相交互
    编程语言的发展史
    计算机的五大组成
    可迭代对象 迭代器对象 生成器对象
  • 原文地址:https://www.cnblogs.com/LoganChen/p/6474594.html
Copyright © 2020-2023  润新知