样例过了但一片红
查看原帖
样例过了但一片红
1135878
Algo_Kit楼主2024/8/20 22:37

0分求助

#include <bits/stdc++.h>
using namespace std;

bool similar(string a,string b){
	if(a.size() != b.size()){
		if(max(a.size(),b.size()) - min(a.size(),b.size()) == 1){
			int maxlen = max(a.size(),b.size()),flag = 0,ma = 0,mb = 0;
			if(maxlen == a.size()){
				for(int i = 0;i < a.size();i++){
					if(a[ma] != b[mb]){
						mb++;
						flag++;
						if(flag == 2){
							return false;
						}
					}
					ma++;
					mb++;
				}
			}else{
				for(int i = 0;i < b.size();i++){
					if(a[ma] != b[mb]){
						ma++;
						flag++;
						if(flag == 2){
							return false;
						}
					}
					ma++;
					mb++;
				} 
			}
		}else{
			return false;
		}
	}else{
		int ans = 0;
		for(int i = 0;i < a.size();i++){
			if(a[i] != b[i]){
				ans++;
			}
		}
		if(ans > 1){
			return false;
		}
	}
	return true;
}

int main(){
	int n;
	cin >> n;
	while(n--){
		string A,B;
		cin >> A >> B;
		if(similar(A,B)){
			cout << "similar" << endl;
		}else{
			cout << "not similar" << endl;
		}
	}
	return 0;
}
2024/8/20 22:37
加载中...