C 程序来查找给定字符串的排列
假设我们在一个数组中有几个字符串。我们必须在不同的行中找到它们的所有排列。
因此,如果输入类似于strings=["abc","def","ghi"],那么输出将是
abc def ghi abc ghi def def abc ghi def ghi abc ghi abc def ghi def abc
示例
让我们看看以下实现以获得更好的理解-
#include <stdio.h>
#include <string.h>
int next_permutation(int n, char **s){
for (int i = n - 1; i > 0; i--)
if (strcmp(s[i], s[i - 1]) > 0){
int j = i + 1;
for (; j < n; j++)
if (strcmp(s[j], s[i - 1]) <= 0)
break;
char *t = s[i - 1];
s[i - 1] = s[j - 1];
s[j - 1] = t;
for (; i < n - 1; i++, n--){
t = s[i];
s[i] = s[n - 1];
s[n - 1] = t;
}
return 1;
}
for (int i = 0; i < n - 1; i++, n--){
char *t = s[i];
s[i] = s[n - 1];
s[n - 1] = t;
}
return 0;
}
int main(){
char *strings[] = {"abc", "def", "ghi"};
int n = 3;
do{
for (int i = 0; i < n; i++)
printf("%s%c", strings[i], i == n - 1 ? '\n' : ' ');
} while (next_permutation(n, strings));
}输入
{"abc", "def", "ghi"}输出结果abc def ghi abc ghi def def abc ghi def ghi abc ghi abc def ghi def abc
热门推荐
10 公司五一祝福语简短最新
11 妈妈祝福语简短16字
12 男朋友新年祝福语简短
13 考试祝福语日文简短版
14 新年祝福语长篇文案简短
15 宝宝周岁可乐祝福语简短
16 祝福语诗意文案简短
17 关于好的祝福语简短
18 5岁宝宝祝福语简短