题解 | #玛雅人的密码#

玛雅人的密码

https://www.nowcoder.com/practice/761fc1e2f03742c2aa929c19ba96dbb0

//土尔逊Torson 编写于2023/06/14
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
#include <queue>
#include <string>

using namespace std;

struct num12101 {
	int index;
	string s;
	num12101(int i, string ss):index(i),s(ss){}
};

void bfs12101(string s) {
	queue<num12101> q;
	q.push(num12101(0, s));
	while (!q.empty()) {
		num12101 g = q.front();
		q.pop();
		string gs = g.s;
		if (gs.find("2012") != string::npos) {
			printf("%d\n", g.index);
			return;
		}
		for (int i = 0; i < gs.size() - 1; i++) {
			swap(gs[i], gs[i + 1]);
			q.push(num12101(g.index + 1, gs));
			swap(gs[i], gs[i + 1]);
		}
	}
	printf("-1\n");
}

int main() {
	int n;
	string m;
	while (scanf("%d", &n) != EOF) {
		cin >> m;
		bfs12101(m);
	}
	system("pause");
	return EXIT_SUCCESS;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

01-14 16:23
广州商学院 Java
双非后端失败第N人:如果准备好了可以直接投字节,字节是最不看学历的,只要想面,大概率都能给你约面。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务