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 生日祝福语简短明了 同事