社区讨论

B3958求调

灌水区参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m0hv0g9g
此快照首次捕获于
2024/08/31 16:07
2 年前
此快照最后确认于
2024/08/31 19:34
2 年前
查看原帖
我同学做
CPP
#include<bits/stdc++.h>
using namespace std;
int t,la,lb;
string a,b;
bool check(){
	bool f=0;
	if(abs(la-lb)>1)return 0;
	for(int i=0;i<min(la,lb);i++){
		if(la!=lb&&a[i]!=b[i])
			if(a[i+1]!=b[i]&&a[i]!=b[i+1])return 0;
		if(f==1&&a[i]!=b[i])return 0;
		if(a[i]!=b[i])f=1;
	}
	return 1;
}
int main(){
	ios::sync_with_stdio(0);
	cin>>t;
	while(t--){
		cin>>a>>b;
		la=a.size(),lb=b.size();
		if(check())cout<<"similar\n";
		else cout<<"not similar\n";
	}
	return 0;
}
因勤学好问,不愿重构 于是找我帮忙
CPP
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
signed main(){
	cin >> n;
	while (n--){
		string a , b;
		cin >> a >> b;
		int la = a.size();
		int lb = b.size();
		if (la < lb){
			swap(a , b);
			swap(la , lb);
		}
		if (abs(la - lb) > 1){
			cout << "not similar" << endl;
			continue;
		}
		else if (abs(la - lb) == 1){
			int f = 0;
			int ans = 0;
			for (int i = 0 ; i < lb ; i++){
				if(a[i] != b[i]){
					ans = 1;
				}
				if (ans && a[i + 1] != b[i]){
					cout << "not similar" << endl;
					f = 1;
					break;
				}
			}
			if (!f){
				cout << "similar" << endl;
			}
		}
		else if (la == lb){
			bool ans = 0;
			bool f = 0;
			for (int i = 0 ; i < lb ; i++){
				if (a[i] != b[i]){
					if (ans){
						f = 1;
						cout << "not similar" << endl;
						break;
					}
					else {
						ans = 1;
					}
				}
			}
			if (!f){
				cout << "similar" << endl;
			}
		}
	}
	return 0;
}
然后我ac了... 由于ta只让我改check里的内容,
并且要像ta一样的结构!
走投无路向大家发问

回复

4 条回复,欢迎继续交流。

正在加载回复...