介绍
这篇文章将为大家详细讲解有关java如何实现字符串的全排列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
字符串的全排列,具体内容如下
输入一个字符串,按字典序打印出该字符串中字符的所有排列,例如输入字符串abc,则打印出由字符a, b, c所能排列出来的所有字符串abc, acb, bac, bca,出租车和cba。结果请按字母顺序输出。
采用递归的思想:
把需要全排列的字符串分为两部分看待:
(1)字符串的第一个字符;
(2)第一个字符后面的所有字符;
求所有可能出现在第一个位置的字符;将第一个字符和后面的字符一次交换,
固定第一个字符,对第一个字符后面的所有字符求全排列第。一个字符后面的所有字符又可以分为两部分;
java代码:,
import java.util.ArrayList;, import java.util.TreeSet, {public class  Solution public 才能;ArrayList< String>,排列(String str), {, ,,,ArrayList, res =, new ArrayList ();, ,,,如果(str==null | | str.length ()==0), ,,,{, ,,,,,return res,, ,,,}, ,,,char [], charArray =, str.toCharArray (),, ,,,//输出按照输入字典顺序, ,,,TreeSet , tempRes =, new TreeSet ();, ,,,PermutationCore (charArray tempRes 0),, ,,,res.addAll (tempRes);, ,,,return res,, ,,,, ,,}, private 才能;void  PermutationCore (char[]大敌;charArray, TreeSet , tempRes, int loc), ,{大敌; ,,,如果(charArray==null | |, charArray.length==0, | |, loc<0, | |, loc> charArray.length-1), ,,,{, ,,,,,return ,, ,,,}, ,,,如果(loc==charArray.length-1), ,,,{, ,,,,,tempRes.add (String.valueOf (charArray));//递归的出口, ,,,}, ,,,else ,,,{, ,,,,,,(int i=loc i 关于“java如何实现字符串的全排列”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。
java如何实现字符串的全排列