蓝桥杯——扑克序列(全排列)

题目:

在这里插入图片描述
next_permutation()函数介绍:next_permutation(a,a+n)是对数组a进行全排列的一个函数,在使用next_permutation()函数之前有一个要求,就是要实现将数组a按照从小到大的顺序排好,所以next_permutation()函数一般和sort()函数结合使用。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

string str = "AA223344";

int main()
{
	sort(str.begin(),str.end());   //在使用next_permutation()函数之前先要使 数组中的元素按照字典序从小到大排序 
	do
	{
		int fA = str.find('A',0);
		int sA = str.find('A',fA+1); 
		int f2 = str.find('2',0);
		int s2 = str.find('2',f2+1);
		int f3 = str.find('3',0);
		int s3 = str.find('3',f3+1);
		int f4 = str.find('4',0);
		int s4 = str.find('4',f4+1);
		if((sA-fA==2)&&(s2-f2==3)&&(s3-f3==4)&&(s4-f4==5))
		{
			cout << str << endl;
			return 0;
		}
	}while(next_permutation(str.begin(),str.end()));
	return 0;
}
发布了61 篇原创文章 · 获赞 7 · 访问量 3627

猜你喜欢

转载自blog.csdn.net/weixin_42469716/article/details/104878639