50分求助
查看原帖
50分求助
1349068
Zhangmocong楼主2024/11/28 20:22
#include<bits/stdc++.h>

using namespace std;
long long t;
string a,b;

bool c(string a,string b){
	int l1=a.size(),l2=b.size();
	int c=0;
	if(abs(l1-l2)>1) return 0;
	else if(l1==l2){
		for(int i=1;i<=l1;i++){
			if(a[i]!=b[i]) {
				c++;
			}
			
		}
		return (c<=1);
	}
	else {
		string chang=(l1>l2)?a:b;
		string duan=(l1>l2)?b:a;
		int i=0,j=0,cn=0;
		while(i<chang.size()&&j<duan.size()){
			if(chang[i]!=duan[j]){
				cn++;
				if(cn>1) return 0;
				i++;
			}
			else{
				i++;
				j++;
			}
			}
			
		return (cn<=1);
		}
	
	
}

int main(){
	cin>>t;
	while(t--){
		cin>>a>>b;
		if(c(a,b)){
			cout<<"similar\n";
		}
		else{
			cout<<"not similar\n";
		}
	}
	return 0; 
}
2024/11/28 20:22
加载中...