80分,最后一个不知道错在哪
查看原帖
80分,最后一个不知道错在哪
1380473
ZY_202301005129楼主2024/7/11 17:25
#include <iostream>
#include<string>
#include<queue>
using namespace std;
string a, b;
string x[7][2];
int l=1;
struct point
{
	string a;
	int sum;
};
queue<point> p;
int s;
int main()
{
//	cin >> l;
	cin >> a >> b;
	while (cin >> x[l][0] >> x[l][1])l++;
	l--;
/*	for (int i = 1;i <= l;i++)
		cin >> x[i][0] >> x[i][1];*/
	p.push({ a,0 });
	while (p.size())
	{
		if (p.front().sum > 10)
		{
			p.pop();
			continue;
		}
		if (p.front().a == b)
		{
			cout << p.front().sum;
			s = 1;
			break;
		}
		for (int i = 1;i <= l;i++)
		{
			string p1 = p.front().a;
			if (p1.find(x[i][0])!=-1)
			{
				int locate = p1.find(x[i][0]);			
				p1.replace(locate, x[i][0].size(), x[i][1]);
				p.push({ p1,p.front().sum + 1 });
			}
		}
		p.pop();
	}
	if(s!=1)
	cout << "NO ANSWER!";
}
2024/7/11 17:25
加载中...