50分求调
查看原帖
50分求调
1724170
zhapenghui楼主2025/7/21 11:01
#include<bits/stdc++.h>
using namespace std;
bool add(string x,string y)
{
	int lx=x.size(),ly=y.size();
	if (lx==ly||abs(lx-ly)>=2)
	return false;
	if (ly>lx)//B长>A长__在add里代替删除 
	{
		int b=0;
		for (int i=0;i<ly;i++)
		{
			if (y[i+b]!=x[i])
			{
				b++;
			}
			if (b>1)
			return false;
			if (i+1==lx&&b==0)
			return true;
		}
	}
	if (ly<lx)//A长>B长
	{
		int b=0;
		for (int i=0;i<lx;i++)
		{
			if (x[i+b]!=y[i])
			{
				b++;
			}
			if (b>1)
			return false;
			if (i+1==ly&&b==0)
			return true;
		}
	}
	return true;
}
bool change(string x,string y)
{
	int lx=x.size(),ly=y.size();
	if (lx!=ly)//长度不同 
	return false;
	int h=0;
	for (int i=0;i<ly;i++)
	{
		if (y[i]!=x[i])
		{
			h++;
		}
		if (h>1)
		return false;
	}
	return true;
}
bool same(string x,string y)
{
	if (x==y)
	return true;
	else
	return false;
}
int main()
{
	int a;
	cin>>a;
	while (a--)
	{
		string x,y;
		cin>>x;
		cin>>y;
		if (add(x,y)||change(x,y)||same(x,y))
		cout<<"similar"<<endl;
		else
		cout<<"not similar"<<endl;
	}
}
2025/7/21 11:01
加载中...