越 改 越 错
查看原帖
越 改 越 错
267125
宋小陀螺楼主2021/8/29 14:29

原先,我的代码长这样

#include<bits/stdc++.h>
#define test puts("test")
using namespace std;
string mid,rgt;
string lft(string mid,string rgt) {
	if (mid.size() == 1) return mid;//注意这句话
	int t = mid.find(rgt[rgt.size() - 1]);
	string lm = mid.substr(0,t),rm = mid.substr(t + 1,mid.size() - 1);
	string lr = rgt.substr(0,t),rr = rgt.substr(t,rgt.size() - 2);
	return mid[t] + lft(lm,lr) + lft(rm,rr);
}
int main() {
	cin >> mid >> rgt;
	cout << lft(mid,rgt) << endl;
	return 0;
}

样例RE

之后,我又把第6行改为 if (mid.size() <= 1) return mid;

结果60,RE后两点

再然后,又改成

if (rgt.size() <= 2) 
{
	reverse(rgt.begin(),rgt.end());
	return rgt;
}

大红大紫40分

很奇特

2021/8/29 14:29
加载中...