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 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程