50pts+小众return valueRE求调
  • 板块灌水区
  • 楼主gao_shou
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/21 20:42
  • 上次更新2024/11/21 22:00:36
查看原帖
50pts+小众return valueRE求调
1034531
gao_shou楼主2024/11/21 20:42

今天在做团队作业时发现了一个绝对值匹配的新思路,结果一调就一直RE,return 3221226505,之前也没遇到过这种情况,有没有懂得大佬指正一下问题是啥?

RE的原题 代码:

//|999-||323-(4343+234)|*81||*|323-(32131+|89-7834|)|-32133
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s,ans;
	bool ln;
	int n;
	cin>>s;
	n=s.length();
//	cout<<n;
	int nsum=0,csum=0,asum=0;
	for(int i=0;i<n;i++)
	{
		if(asum==0) nsum=csum=0;
//		cout<<nsum<<" "<<csum<<" ";
		if(isdigit(s[i]))
		{
			ans[i]=s[i];
			if(asum!=0 && !ln) nsum++;
			ln=1;
		}
		if(s[i]=='(' || s[i]==')')
		{
			ans[i]=s[i];
			ln=0;
		}
		if(s[i]=='+' || s[i]=='-' || s[i]=='*' || s[i]=='/')
		{
			ans[i]=s[i];
			if(asum!=0) csum++;
			ln=0;
		}
		if(s[i]=='|')
		{
			ln=0;
//			cout<<"jfsdakl          "<<csum<<" "<<nsum<<"hadfkljfdhsakl      ";
			if(nsum==csum+1 && asum!=0)
			{
				ans[i]='>';
				asum--;
			}
			else 
			{
				ans[i]='<';
				asum++;
			}
		}
//		cout<<ans[i]<<endl;
	}
//	cout<<ans;
//	cout<<1;
//cout<<"                                 dsajfasjf";
	for(int i=0;i<n;i++)
	{
		cout<<ans[i];
	}
	return 0;
}

出现bug的样例:|999-||323-(4343+234)|81|||323-(32131+|89-7834|)|-32133

大佬们帮看一下吧,24:00就停止提交了

2024/11/21 20:42
加载中...