设为首页 加入收藏

TOP

PTA-括号问题
2019-05-23 14:40:30 】 浏览:25
Tags:PTA- 括号 问题

括号问题

作者: 李廷元
单位: 中国民用航空飞行学院
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB

问题描述

给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查>这一串字符中的( ) ,[ ],{ }是否匹配。

输入格式:

输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。

输出格式:

如果括号配对,输出yes,否则输出no。

输入样例1:

sin(10+20)

输出样例1:

yes

输入样例2:

{[}]

输出样例2:

no

代码

#include<stdio.h>
#include<stdlib.h>
#define Maxsize 100

typedef struct SNode* Stack;
struct SNode {
    char data[Maxsize];
    int Top;
};

Stack create ();
int Push (Stack S, char x);
char Pop (Stack S);

int main ()
{
    char str[101];
    Stack S = create ();
    int i = 0, flag = 1;
    gets(str);
    while(str[i] != '\0')
    {
        if(str[i] == '(' || str[i] == '[' || str[i] == '{')
            Push(S, str[i]);
        else if(str[i] == ')' || str[i] == ']' || str[i] == '}')
        {
            if(S->Top == -1)
            {
                flag = 0;
                printf("no\n");
                break;
            }
            if(str[i] == ')')
            {
                if(S->Top == -1 || S->data[S->Top] != '(')
                {
  
		    

flag = 0; printf("no\n"); break; } else Pop(S); } if(str[i] == ']') { if(S->Top == -1 || S->data[S->Top] != '[') { flag = 0; printf("no\n"); break; } else Pop(S); } if(str[i] == '}') { if(S->Top == -1 || S->data[S->Top] != '{') { flag = 0; printf("no\n"); break; } else Pop(S); } } i++; } if(flag != 0) { if(S->Top == -1) printf("yes\n"); else printf("no\n"); } return 0; } Stack create () { Stack S = (Stack)malloc(sizeof(struct SNode)); S->Top = -1; return S; } int Push (Stack S, char x) { if(S->Top == 99) { printf("Stack Full\n"); return -1; } else { S->data[++(S->Top)] = x; return 1; } } char Pop (Stack S) { if(S->Top == -1) { printf("Stack Empty\n"); return -1; } else return (S->data[(S->Top)--]); }

一开始是使用的while((ch = getchar()) != '\n')来读取字符,结果一直超时,个人认为可能是因为调用getchar函数次数过多。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Nginx安装、配置和使用 下一篇C语言典型编程3

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }