WA #1,求助大佬们
查看原帖
WA #1,求助大佬们
1192648
LHX_18460366315楼主2024/4/6 21:01
#include<bits/stdc++.h>
using namespace std;

bool pd1(string x,string y){
	long long l = min(x.size(),y.size());
	bool b = false;
	string s;
	if (x.size() < y.size() && x.size() - y.size() == -1){
		for (int i = 0;i < l;i++){
			if (x[i] != y[i] && b == false){
				s += y[i];
				b = true;
			}
			s += x[i];
		}
		if (s == y){
			return true;
		}else if (s + y[y.size() - 1] == y){
			return true;
		}
	}
	return false;
}

bool pd2(string x,string y){
	long long l = min(x.size(),y.size());
	bool b = false;
	string s;
	if (x.size() > y.size() && x.size() - y.size() == 1){
		for (int i = 0;i < l;i++){
			if (x[i] != y[i] && b == false){
				b = true;
				s += y[i];
				if (x[i + 1] != y[i]){
					return false;
				}
				continue;
			}
			if (i == l - 1 && b == false){
				return true;
			}
			if (b && x[i] != y[i]){
				s += y[i];
			}else {
				s += x[i];
			}
		}
		if (s == y){
			return true;
		}
	}
	return false;
}

bool pd3(string x,string y){
	long long l = x.size();
	bool b = false;
	string s;
	if (x.size() == y.size()){
		for (int i = 0;i < l;i++){
			if (x[i] != y[i] && b == false){
				s += y[i];
				b = true;
				continue;
			}
			s += x[i];
		}
		if (s == y){
			return true;
		}
	}
	return false;
}

int main(){
	long long t;
	string a,b;
	cin >> t;
	for (int i = 1;i <= t;i++){
		cin >> a >> b;
		if (a == b){
			cout << "similar" << endl;
		}else if(pd1(a,b)){
			cout << "similar" << endl;
		}else if(pd2(a,b)){
			cout << "similar" << endl;
		}else if(pd3(a,b)){
			cout << "similar" << endl;
		}else{
			cout << "not similar" << endl;
		}
	}
    return 0;
}

2024/4/6 21:01
加载中...