codechef May challenge C

来源:互联网 发布:商家如何开通淘宝达人 编辑:程序博客网 时间:2024/06/06 04:00
括号匹配,所以就上栈,注意的是添加rec变量,记录第一个“<”的位置,为了当栈不为空的时候输出rec即为合法表达式的长度(欢迎提问)
#include<stdio.h>#include<string.h>#define maxn 1000005char ss[maxn];char stacks[maxn];int main(){    int T;    scanf("%d",&T);    while(T--)    {   int i,top=0,ans=0,rec;        scanf("%s",ss);        int len=strlen(ss);        for(i=0;i<len;i++)        {            if(ss[i]=='>'&&top==0)  break;            else if(ss[i]=='>'&&top!=0)  { top--; ans+=2;}            else                {                    stacks[top]='<';                    top++;                    if(top==1) rec=i;                }        }        if(top==0)          printf("%d\n",ans);        else          printf("%d\n",rec);    }    return 0;}

0 0
原创粉丝点击