zhazha98 2017-05-20 00:55 采纳率: 75%
浏览 1192
已结题

OJ超时的编程题求优化

#include
#include
using namespace std;
class stack
{
private:
int* elements;
int top;
int maxsize;
public:
stack(int sz=100)
{
maxsize=sz;
top=-1;
elements=new int [maxsize];
if(elements==NULL)
cout<<"error";
}
void overflowprocess()
{
int * newarray=new int [maxsize+20];
if(newarray==NULL)
{
cout<<"error"<<endl;
}
for(int i=0;i<=top;i++)
newarray [i]=elements[i];
delete[]elements;
elements=newarray;
}
bool isempty()
{
return (top==-1)?true:false;
}
bool pop(int &x)
{
if(isempty()==true)
return false;
x=elements[top--];
return true;
}
bool isfull()
{
return (top==maxsize-1)?true:false;
}
void push(int &x)
{
if(isfull()==true)
overflowprocess();
elements[++top]=x;
}

};
void match( char *ex)
{
stack s;
int j=0,i,t=0,a=0,b=0,z;
int length=strlen(ex);
for(int i=1;i {
if(ex[i-1]=='('||ex[i-1]=='['||ex[i-1]==' s.push(i);
else if(ex[i]==')'||ex[i]==']'||ex[i]=='>')
{
if(s.pop(j)==true )
{
z=j-1;
if(ex[i]==')')
t+=i-j;
if(ex[i]==']')
a+=i-j;
if(ex[i]=='>')
b+=i-j;
for(int k=i+1;ex[k]!='\0';k++)
{
ex[j-1]=ex[k];
j++;
}
i=z;
}
}
}
cout< }
int main()
{
int T;
cin>>T;
while(T--)
{
char a[100];
cin>>a;
match(a);
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-05-20 16:23
    关注

    题目都没有,优化个毛

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?