| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1188 人关注过本帖
标题:括号匹配
取消只看楼主 加入收藏
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
结帖率:88%
收藏
已结贴  问题点数:20 回复次数:4 
括号匹配
输入第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes
我的代码,为什么没有第三个测试数据yes,但是单个测试的时候可以:
#include <stdio.h>
#include <string.h>
int main()
 {
    char ch[4][10000],ch1[4][10000];
    int i,j=0,k=0;
    int n,x;
    scanf("%d",&n);
    for(x=0;x<n;x++)scanf("%s",&ch[x]);
    for(x=0;x<n;x++)
    {
      int len=strlen(ch[x]);
       for(i=0;i<len;i++)
       {
        if(ch[x][i]=='['||ch[x][i]=='(')
            ch1[x][j++]=ch[x][i];
        else if(ch[x][i]==')'&&(ch1[x][j-1]+1==ch[x][i])||ch[x][i]==']'&&ch1[x][j-1]+2==ch[x][i])
        {
            ch1[x][j-1]=' ';
            j--;
        }
        else {printf("No\n");continue;}
       }
   
        if(j==0)printf("Yes\n");
    }
    return 0;
 }
搜索更多相关主题的帖子: include 字符串 
2013-09-04 21:10
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
对啊!第一个是no,,第二个也是no,但是就没第三个了,但是你就输入一个测试数据测试第三个就会有yes

Maybe
2013-09-04 21:59
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
什么原因呢

Maybe
2013-09-04 22:35
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
j没有清零

Maybe
2013-09-04 22:49
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
回复 11楼 Susake
AC

Maybe
2013-09-05 10:40
快速回复:括号匹配
数据加载中...
 
   



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

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