一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - java實現字符串的全排列

java實現字符串的全排列

2021-03-31 13:34snow_7 JAVA教程

這篇文章主要為大家詳細介紹了java實現字符串的全排列,具有一定的參考價值,感興趣的小伙伴們可以參考一下

字符串全排列,具體內容如下

輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 結果請按字母順序輸出。

采用遞歸的思想:

把需要全排列的字符串分為兩部分看待:
(1)字符串的第一個字符;
(2)第一個字符后面的所有字符;

求所有可能出現在第一個位置的字符;將第一個字符和后面的字符一次交換;

固定第一個字符,對第一個字符后面的所有字符求全排列。第一個字符后面的所有字符又可以分為兩部分;

java代碼: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.ArrayList;
import java.util.TreeSet;
public class Solution {
  public ArrayList<String> Permutation(String str) {
    ArrayList<String> res = new ArrayList<String>();
    if(str==null||str.length()==0)
    {
      return res;
    }
    char[] charArray = str.toCharArray();
    //輸出按照輸入字典順序
    TreeSet<String> tempRes = new TreeSet<String>();
    PermutationCore(charArray,tempRes,0);
    res.addAll(tempRes);
    return res;
     
  }
  private void PermutationCore( char[] charArray,TreeSet<String> tempRes,int loc)
  {
    if(charArray==null || charArray.length==0 || loc<0 || loc>charArray.length-1)
    {
      return ;
    }
    if(loc==charArray.length-1)
    {
      tempRes.add(String.valueOf(charArray));//遞歸的出口
    }
    else
    {
      for(int i=loc;i<charArray.length;i++)
      {
        swap(charArray,i,loc);//將第一個字符與后面的字符交換
        PermutationCore(charArray,tempRes,loc+1);//對后面所有的字符進行全排列
        swap(charArray,i,loc);//再將之前交換的字符交換回來,以便第一個字符再與其他字符交換
      }
        
    }
  }
  private void swap(char[] charArray,int i,int j)
  {
    char temp = charArray[i];
    charArray[i] = charArray[j];
    charArray[j] = temp;
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/snow_7/article/details/52459324

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 非洲黑人xxxxxbbbbb | 欧美久久久久久久一区二区三区 | 亚洲久草视频 | 美女污视频在线观看 | 国产精品久久国产精品99 | 国产一卡2卡3卡四卡国色天香 | 白丝尤物的下面被疯狂蹂躏 | 精品夜夜澡人妻无码AV蜜桃 | 日本ssswww大学生 | waswaswas免费 | 男女被爆动漫羞羞动漫 | 9l国产精品久久久久麻豆 | 亚洲天堂男人 | 亚洲色图欧美图片 | 亚洲 欧美 在线观看 | 女同69式互添在线观看免费 | xvideoscom极品肌肉警察 | 好姑娘完整版在线观看中文 | 波多野结衣xxxx性精品 | 日韩在线观看一区二区不卡视频 | spank日本网站脱裤子打屁股 | 99福利在线观看 | 掰开逼操 | 欧美破处女视频 | 美女张开双腿让男人捅 | 美女被爆| 国产精品午夜久久 | 久久精品麻豆国产天美传媒果冻 | 国产成人久久精品一区二区三区 | 亚欧有色在线观看免费版高清 | 男人天堂亚洲 | 精品成人网 | 猛操美女| 国内激情自拍 | yellow最新视频2019 | 高清男的插曲女的 欢迎你老狼 | 日韩欧美推理片免费在线播放 | 日韩手机在线观看 | 婚色阿花在线全文免费笔 | 国产精品高清在线 | 猥琐对着美女飞机喷到脸上 |