数据结构之-字符串的全排列

来源:互联网 发布:linux ssh安装包下载 编辑:程序博客网 时间:2024/05/17 06:13

任意一组字符串如“abc”,如何找出所有排列组合:

[abc, acb, bac, bca, cab, cba]

 

在网上找了个例子,还没看懂,先放上来。

  private static String[] permutation(String orginal) {
    List<String> list = new ArrayList<String>();
    if (orginal.length() == 1) {
      return new String[] { orginal };
    } else {
      for (int i = 0; i < orginal.length(); i++) {
        String result = "";
        String resultA = "" + orginal.charAt(i);
        String leftS = orginal.substring(0, i)
            + orginal.substring(i + 1, orginal.length());
        for (String element : permutation(leftS)) {
          result = resultA + element;
          list.add(result);
        }
      }
      return list.toArray(new String[list.size()]);
    }
  }

 

由于组合的总数以阶乘式增长,所以原始字符串不且过长,最好是7个以下。

原创粉丝点击