标题:新人《c语言括号配对问题》 答案正确 当过oj总是runtime error
取消只看楼主
凉粉呵呵
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-2-10
结帖率:81.82%
已结贴  问题点数:20 回复次数:1 
新人《c语言括号配对问题》 答案正确 当过oj总是runtime error
括号配对问题
时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes



源代码:

#include<stdio.h>
int main()
{
    int count,i,j,n,sum1,sum2;
    char a[10][1000];
    scanf("%d",&count);
    for(i=0;i<=count;i++)
    {
        j=0;
        while((a[i][j]=getchar())!='\n')
            j++;
        a[i][j]='\0';
    }
    for(i=1;i<=count;i++)
    {    j=n=sum1=sum2=0;
        while(a[i][j]!='\0')
        {
            if(((a[i][j]=='(')&&(a[i][j+1]==']'))||((a[i][j]=='[')&&(a[i][j+1]==')')))
            {
                n=1;
                break;
            }
            else if(a[i][j]=='(')
                sum1++;
            else if(a[i][j]==')')
                sum1--;
            else if(a[i][j]=='[')
                sum2++;
            else if(a[i][j]==']')
                sum2--;
            j++;
        }
        if((sum1==0)&&(sum2==0)&&(n==0))
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}
搜索更多相关主题的帖子: 配对 字符串 
2013-02-10 23:26
凉粉呵呵
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2013-2-10
得分:0 
ls  蟹蟹   数组开大了一点 还有加了判断sum1或者sum2是否小于0  就可以通过了   会不会是提交到一定数量   于心不忍就过了   呵呵
2013-02-11 10:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-398513-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.266564 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved