文章

2

粉丝

165

获赞

1

访问

19.6k

头像
P1185 全排列 #vector #dfs
P1185 中国矿业大学/北京大学机考题
发布于2020年3月25日 23:38
阅读数 10.2k

#include
#include
#include
using namespace std;
//注意两点,dfs用vector时每次都要pop;字符串未初始化不能直接给某一位字符赋值。
int n;
string s;
vector p;
int visited[6] = { 0 };

void dfs(int x)
{
	if (x == n)
	{
		for (int i = 0; i < n; i++)
		{
			cout << p[i];
		}
		cout << endl;
		return;
	}
	else
	for (int i = 0; i < n; i++)
	{
		if (visited[i] == 0)
		{
			visited[i] = 1;
			p.push_back(s[i]);
			dfs(x+1);
			p.pop_back();
			visited[i] = 0;

		}

	}
}
int main()
{
	
	while (cin >> s)
	{
		n = s.size();
		dfs(0);
		s.clear();
		p.clear();
		cout << endl;
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发