erase方案应该还可以简化,兄弟们可以精简一下
查看原帖
erase方案应该还可以简化,兄弟们可以精简一下
1474053
codekingovo楼主2024/12/30 21:54
#include <bits/stdc++.h>
#include <stdio.h> 
using namespace std;
int fon(string a,string b)
{
	int cnt=0,i;
int	la=a.length();
int	lb=b.length();
string a1=a,b1=b;
	if(la==lb){
		for(i=0;i<la;i++){
			if(a[i]!=b[i]){
				cnt++;
			}
		}
		if(cnt<=1){
			return 1;
		}
	}
	if(la>lb){
		int fa=0;
		for(i=0;i<la;i++){
			a1.erase(i,1);
			if(a1==b){
				fa=1;
			}
			a1=a;
		}
		if(fa){return 1;
		}
		else {
			return 0;
		}
	}
	if(la<lb){
		int fb=0;
		for(i=0;i<lb;i++){
			b1.erase(i,1);
			if(b1==a){
				fb=1;
			}
			b1=b;
		}
		if(fb){
			return 1;
		}
		else {
			return 0;
		}
	}
	return 0;
}
int main()
{
	int n;
	cin>>n;
	int i,j,la,lb,cha;
	string a,b;
	for(i=0;i<n;i++)
	{
		cin>>a>>b;
		la=a.length();
		lb=b.length();
		if(abs(la-lb)<=1){
			if(fon(a,b)){
				cout<<"similar"<<endl;
			}
			else {
				cout<<"not similar"<<endl;
			}
		}
		else {
	cout<<"not similar"<<endl;
		}
	}
	return 0;
}
2024/12/30 21:54
加载中...