Beispiel #1
0
void permu(int arr[],int n, int k)
{
	int i,check,m;
	if(k==n-1)
	{

	//	for(i=0;i<n;i++)
	//	printf("%d",arr[i]);

	}

		printf("\n");
	
	
		for(i=k;i<n;i++)
			
		{
			swap(k,i);
			permu(arr,n,k+1);
		        for(m=0;m<n;m++)
				printf("%d",arr[m]);
			printf("\n");
			sort(arr,k,n);
			swap(k,i);
	

		}
	
	
}
void main() {
	char a[100], b[100];
	int i, j;
	printf("enter two strings \n");
	scanf("%s%s", a, b);
	permu(a, b);
	

}
int main()
{
	char st1[50], st2[50],r=0;
	printf("first string\n");
	scanf("%s", st1);
	printf("enter second string \n");
	scanf("%s", st2);
	r=permu(st1, st2);
	if (r == 0)
		printf("the second string is one of permutation of first string\n");
	else
		printf("the second string is \"not\" one of permutation of first string\n");
	return 0;
}
Beispiel #4
0
int main()
{
	int i,j,t,n,k=0;
	scanf("%d",&t);
	while(t!=0)
	{
		scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d",&arr[i]);
		permu(arr,n,k);
		t--;
	}
	return 0;
}
    string getPermutation(int n, int k) {
        vector<int> nums(n);
		for(int i=0;i<n;i++)
			nums[i]=i+1;
		vector<int> permu(n);
		permu[0]=1;
		for(int i=1;i<n;i++)
			permu[i]=permu[i-1]*(i+1);
		string ret;
		if((n>0)&&(k>0)&&(k<=permu[n-1])){
			if(k>1)
				getPermutation_aux(0,k-1,permu,nums);
			for(int i=0;i<nums.size();i++)
				ret.push_back('0'+nums[i]);
		}
		return ret;
    }