括号匹配

来源:互联网 发布:神机妙算软件是什么 编辑:程序博客网 时间:2024/05/22 07:47

问题 A 数据结构作业02 -- 括号的P序列计算

时间限制: 1 Sec  内存限制: 128 MB
[提交]

题目描述

计算一个合法括号字符串的P序列。括号字符串的P序列是由每个右括号与其对应左括号之间的右括号个数排列而成的。 例如,括号字符串“((()(())))”的P序列为:“1 1 2 4 5”。

输入

一组合法的括号字符串,每个括号字符串一行。

输出

每个括号字符串的P序列输出一行,每个数值后有一个空格。

样例输入

(())((()(())))

样例输出

1 2 1 1 2 4 5

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<math.h>char s[15000];int count(int a){    int sum=1;    int ans=0;    while(a--){        if(s[a]=='('){            sum--;            ans++;            if(sum==0)                return ans;        }        else if(s[a]==')'){            sum++;        }    }}int main(){    int i=0;    int len;    int sum;    while(~scanf("%s",s)){        len=strlen(s);        for(i=0;i<len;i++){            if(s[i]==')'){                sum=count(i);                printf("%d ",sum);            }        }        printf("\n");    }    return 0;}

0 0
原创粉丝点击