0pt求条
查看原帖
0pt求条
1419482
Backpack_dp楼主2025/6/16 23:18

rt

using namespace std;

void is_similar(string m,string n){
    if(max(n.size(),m.size())-min(n.size(),m.size())>1){cout<<"not similar"<<endl;return;}
    if(n==m){cout<<"similar"<<endl;return;}
    //1.加字符,n减去任意一个字符=m
    for(int i=0;i<n.size();i++){
        char c=n[i];
        if(n.erase(i,1)==m){
            cout<<"similar"<<endl;
            return;
        }
        n.insert(i,c,1);
    }
    //2.减字符
    for(int i=0;i<m.size();i++){
        char c=m[i];
        if(m.erase(i,1)==n){
            cout<<"similar"<<endl;
            return;
        }
        m.insert(i,c,1);
    }
    //3.变换,不同字符不超过1
    if(m.size()==n.size()){
        int cnt=0;
        for(int i=0;i<m.size();i++){
            if(n[i]!=m[i])cnt++;
        }
        cnt>1?cout<<"not similar"<<endl:cout<<"similar"<<endl;
        return;
    }
    cout<<"not similar"<<endl;
    return;

}
int main(){
	int t;string a,b; 
	cin>>t;
	while(t--){
		cin>>a>>b;
        is_similar(a,b);
	}
	return 0;
}
2025/6/16 23:18
加载中...