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 祖国七十华诞简短祝福语
12 老师送的祝福语简短
13 生日祝福语大全女生简短
14 祝女性生日祝福语简短
15 牛年女神节祝福语简短
16 情人表白祝福语简短大气
17 老公开业祝福语简短
18 官宣新年祝福语简短