关于replace
查看原帖
关于replace
653455
ETO_tree楼主2024/8/27 18:22

rt,为什么我的replace没有执行成功

#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
using namespace std;
#define ll long long
string a1[1000],b1[1000],A,B,m,n;
ll cnt=1,ans=99999;
ll checktihuan(string a,ll k)//可正常运行
{
	ll num1=a1[k].length(),ans=-1;
	for(ll i=0;i<a.length()-num1+1;i++)
	{
		bool flag1=true;
		for(ll j=i;j<=i+num1-1;j++)
		{
			if(a[j]!=a1[k][j])
			{
				flag1=false;
				break;
			}
		}
		if(flag1)
		{
			ans=i;
			break;
		}
	}
	return ans;
}
void tihuan(string a,ll k,ll j)
{
	a.replace(j,a1[k].length(),b1[k]);//就是这里,执行的时候没有替换
}
void dfs(string a,ll step)
{
	ans=min(ans,step);
	if(step>=ans)return;
	for(ll i=1;i<=cnt;i++)
	{
		ll num2=checktihuan(a,i);
		if(num2!=-1)
		{
			tihuan(a,i,num2);
			step++;
			dfs(a,step);
			step--;
		}
	}
}
int main()
{	
	cin>>A>>B;
	while(cin>>m>>n)
	{
		a1[cnt]=m;
		b1[cnt++]=n;
	}
	cnt--;
	tihuan(A,1,0);
	cout<<A;
}
2024/8/27 18:22
加载中...