java如何实现字符串的全排列

  介绍

这篇文章将为大家详细讲解有关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如何实现字符串的全排列