数据结构实验之栈与队列四:括号匹配

数据结构实验之栈与队列四:括号匹配

喜欢你胜于昨日,却略匮于明朝,心念深于前秒,却稍浅于此刻,想见你分秒难耐,却情怯胜年少,

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

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

 

Input

 输入数据有多组,处理到文件结束。

 

Output

 如果匹配就输出“yes”,不匹配输出“no”

 

Sample Input

sin(20+10)
{[}]

Sample Output

yes
no

Hint

Source

ma6174

#include 
#include 
#include 
int main()
{
    char s[101], a[101];
    int i,top;
    while(gets(s))
    {
        i = 0;
        top = 0;
        while(s[i]!='\0')
        {
            if(s[i] == '(' ||s[i]=='{'||s[i]=='[')
                a[++top] = s[i];
            if(s[i] == ')')
            {
                if(a[top] == '(')
                    top--;
                else
                    a[++top] = s[i];
            }
            if(s[i] ==']')
            {
                if(a[top] == '[')top--;
                else a[++top] = s[i];
            }
            if(s[i] == '}')
            {
                if(a[top] == '{')top--;
                else a[++top] = s[i];
            }
            i++;
        }
        if(top == 0)
            printf("yes\n");
        else
            printf("no\n");
    }
    return 0;
}

 

你可能感兴趣的:(数据结构实验之栈与队列四:括号匹配)