C程序打印给定字符串的所有排列
在这个问题上,我们得到一个字符串。我们的任务是创建一个ac程序,以打印给定字符串的所有排列。
该程序将找到给定字符串的所有可能组合并打印出来。
排列是以所有可能的排列顺序排列的对象所有部分的排列。
让我们举个例子来了解这个问题,
输入值
xyz
输出结果
xyz, xzy, yxz, yzx, zxy, zyx
说明
These are all permutations take in order.
为了解决这个问题,我们将使用回溯,即将字符串的每个字符作为排列的第一个字符,然后依次逐个选择字符串的所有剩余字符。因此,打印字符串的所有排列。
程序打印给定字符串的所有排列
//程序打印给定字符串的所有排列-
示例
#include <iostream>
using namespace std;
void findPermutations(string str, int l, int r){
if (l == r)
cout<<str<<" ";
else{
for (int i = l; i <= r; i++){
swap(str[l], str[i]);
findPermutations(str, l+1, r);
swap(str[l], str[i]);
}
}
}
int main(){
string str = "WXYZ";
int n = str.size();
findPermutations(str, 0, n-1);
return 0;
}输出结果
WXYZ WXZY WYXZ WYZX WZYX WZXY XWYZ XWZY XYWZ XYZW XZYW XZWY YXWZ YXZW YWXZ YWZX YZWX YZXW ZXYW ZXWY ZYXW ZYWX ZWYX ZWXY
热门推荐
10 打牌翻盘祝福语简短
11 祝福语大全简短6个
12 公司开年仪式祝福语简短
13 思念丈夫祝福语简短的话
14 亲姐姐祝福语简短英文
15 离职横幅升职祝福语简短
16 中式蛋糕开业祝福语简短
17 公司商务中秋祝福语简短
18 带清的简短祝福语