括号匹配,所以就上栈,注意的是添加rec变量,记录第一个“<”的位置,为了当栈不为空的时候输出rec即为合法表达式的长度(欢迎提问)
#include<stdio.h>
#include<string.h>
#define maxn 1000005
char 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;
}