字串的排列
題目
輸入一個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。
解析
我們可以把字串看成由兩個部分組成:第一部分為它的第一個字元,第二部分為後面的所有字元。如此就可以遞迴。
當然遞迴的時候一定不要忘了回溯。
結果
程式碼
#include<iostream>
using namespace std;
void Permutation(char* s,char* begin){
if(*begin=='\0')
cout<<s<<endl;
else
{
for(char* p=begin;*p!='\0';p++)
{
char temp=*p;
*p=*begin;
*begin=temp;
Permutation(s,begin+1);
//此處回溯
temp=*p;
*p=*begin;
*begin=temp;
}
}
}
int main()
{
char c[100];
cin>>c;
cout<<"結果:"<<endl;
Permutation(c,c);
return 0;
}
相關文章
- 字串的全排列字串
- 字串的升序降序排列字串
- 字串全排列字串
- 【劍指offer】字串的排列字串
- 九度 1369 字串的排列字串
- 567. 字串的排列(中)字串
- JavaScript字串逆序排列JavaScript字串
- JZ-027-字串的排列字串
- 無重複字串的排列組合字串
- 劍指 Offer 38. 字串的排列字串
- LeetCode 567. 字串的排列LeetCode字串
- [CareerCup] 1.3 Permutation String 字串的排列字串
- 字串排列組合問題字串
- 字串全排列 java實現字串Java
- 排列子串;及翻譯字串分析字串
- 指標陣列練習排列字串指標陣列字串
- javascript將字串逆序排列程式碼例項JavaScript字串
- [劍指offer][第四章][28]字串的排列字串
- 3297. 統計重新排列後包含另一個字串的子字串數目 I字串
- 3298. 統計重新排列後包含另一個字串的子字串數目 II字串
- leetcode 面試題08.08. 有重複字串的排列組合LeetCode面試題字串
- LeetCode刷題進階之重新排列字串(1528)LeetCode字串
- 隨機輸入3個字串,降序排列,用引用、字元陣列實現隨機字串字元陣列
- 逆序排列
- 關於元素排列的DFS
- ACM 擅長排列的小明ACM
- 現在有"abcdefghijkl”12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?字元
- 【leetcode】60. Permutation Sequence 全排列的第k位序的排列形式LeetCode
- 排列轉換
- 排列 題解
- 排列組合
- 有重複元素的全排列
- [MATLAB]排列大小Matlab
- 生成隨機排列隨機
- 聊聊CBO的連線排列(Join Permutation)
- 有重複元素的排列問題
- 實現自然數N的全排列
- 全排列演算法演算法