面試題25 字串的排列

2021-08-02 13:09:49 字數 700 閱讀 6853

題目:輸入乙個字串,列印出該字串中字元的所有排列。

例如輸入字串abc,則列印由字元a,b,c所能排列出來的所有字串:abc,abc,bac,bca,cab,cba

我們求整個字串的排列,可以看成兩步:首先求出所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。下圖就是分別把第乙個字元a和後面的b,c交換的情景。第二步固定第乙個字元,求後面所有字元的排列。這個時候我們仍把後面的所有字元分成兩部分:後面字元的第乙個字元,以及這個字元之後的所有字元。然後把第乙個字元逐一和它後面的字元交換……

注:(a)把字串分為兩部分,一部分是字串的第乙個字元,另一部分是第乙個字元以後的所有字元。接下來我們求陰影部分的字串的排列。(b)拿第乙個字元和它後面的字元逐個交換。

public

class e28stringpermutation   

public

void permutation(char arr,int index,int size)  

system.out.println();  

}  else  

}  }  

public

static

void main(string args)  

面試題28 字串排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。1 class solution 1...

面試題28 字串的排列

1.輸入乙個字串,列印出該字串中字元的所有排列,例如輸入字串abc,則列印出字元a,b,c的所有可能排列,abc,acb,bac,bca,cab,cba.分析 我們可以講字串看成兩部分組成,第一部分為第乙個字元,第二部分是後面所有的字元。首先求所有可能出現在第一位置的字元,即把第乙個字元和後面所有的...

面試題38 字串的排列

問題1 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。思路 abcde 第一輪,a與b交換,a與c交換,a與d交換,a與e交換,其中a每次都要回到原來的位置 第二輪,a固定,bcd...