跳动百科

全排列算法思路解析(全排列算法)

梅顺可
导读 大家好,我是小跳,我来为大家解答以上问题。全排列算法思路解析,全排列算法很多人还不知道,现在让我们一起来看看吧!= =~思路什么的

大家好,我是小跳,我来为大家解答以上问题。全排列算法思路解析,全排列算法很多人还不知道,现在让我们一起来看看吧!

= =~思路什么的...用递归吧:

package mon_11;

import java.util.HashSet;

public class ArrangeAll {

private static HashSetset = new HashSet(); public static void arrangeAll(String s) { put(new StringBuilder(s), new StringBuilder()); } static void put(StringBuilder s1, StringBuilder s2) { if (s1.length() == 0)set.add(s2.toString()); for (int i = 0; i < s1.length(); i++) { put(new StringBuilder(s1).deleteCharAt(i),new StringBuilder(s2).append(s1.charAt(i))); } } public static void main(String[] args) { arrangeAll("abcd"); System.out.println(set); } } ---- 输出: [dcab, acdb, acbd, bcda, bdca, bdac, dbca, bacd, cabd, cdba, cdab, badc, dabc, cadb, dbac, bcad, dacb, cbda, cbad, adbc, adcb, abcd, abdc, dcba]

本文到此讲解完毕了,希望对大家有帮助。