俩WA,求解
查看原帖
俩WA,求解
1288333
XURUIFAN楼主2024/6/3 21:33

核心代码:

bool check(string a, string b) {
	if (a == b)return 1;
	if (max((int)a.size(), (int)b.size()) > min((int)a.size(), (int)b.size()) + 1)return 0; //长度差距大于一,必然不行。
	int x = 0;
	//修改是否可以
	for (int i = 0; i < a.size(); i++) {
		if (a[i] != b[i])x++;
	}
	if (x == 1)return 1;
	if (a.size() == b.size())return 0;//修改不行,长度相同,必然不相似。
	/*
	插入是否可以
	若a插入一个字符=b,则b删除一个字符=a
	*/
	string n;
	if (a.size() < b.size()) {
		n = a;
		a = b;
		b = a;
	}
	//此时a是较长串。
	int a_index = 0, b_index = 0;
	bool change = 0;
	for (; a_index < a.size() && b_index < b.size(); a_index++, b_index++) {
		if (a[a_index] != b[b_index]) {
			if (change)return 0;
			b_index++;
			change = 1;
		}
	}
	return (change == 1) ? 1 : 0;

}

代码逻辑是如果是相似返回1,不相似返回2。
码风不好请见谅

2024/6/3 21:33
加载中...