zoukankan      html  css  js  c++  java
  • 括号匹配

                                 括号匹配

    题目描述

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

    输入

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

    输出

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

    示例输入

    sin(20+10)
    {[}]

    示例输出

    yes
    no


    #include<stdio.h>
    #include<string.h>
    int main()
    {
        char s[100000], q[10000];
        int i, j, k, flag;
        while(gets(s)!=NULL)
        {
            flag = 0;
            j = 1;
            memset(q, 0, sizeof(q));
            for(i=0; i<strlen(s); i++)
            {
                if(s[i]=='(' || s[i]=='{' || s[i]=='[')
                    q[j++] = s[i];
                else if(s[i]==')')
                {
                    if(q[j-1]==0){ flag=1; break;}
                    if(q[j-1]=='(')
                    {
                        q[j-1] = 0;
                        j--;
                    }
                    else
                    {
                        flag =1;
                        break;
                    }
                }
                else if(s[i]=='}')
                {
                    if(q[j-1]==0) {flag =1; break;}
                    if(q[j-1]=='{')
                    {
                        q[j-1] = 0;
                        j--;
                    }
                    else
                    {
                        flag =1;
                        break;
                    }
    
                }
                else if(s[i]==']')
                {
                    if(q[j-1]==0) {flag =1; break;}
                    if(q[j-1]=='[')
                    {
                        q[j-1] = 0;
                        j--;
                    }
                    else
                    {
                        flag =1;
                        break;
                    }
                }
                if(flag==1) break;
            }
            if(flag==0 && q[1]==0)
                printf("yes
    ");
            else printf("no
    ");
        }
        return 0;
    }
    View Code
    每天训练发现我比别人做的好慢,但是理解的更深刻,如果一开始学一个新知识点就搜模板,那么这样的人是走不远的,毕业之后带走的只有思维,什么荣誉,奖杯都已经不重要了。
  • 相关阅读:
    js正则表达式中的问号使用技巧总结
    380. Insert Delete GetRandom O(1)
    34. Find First and Last Position of Element in Sorted Array
    162. Find Peak Element
    220. Contains Duplicate III
    269. Alien Dictionary
    18. 4Sum
    15. 3Sum
    224. Basic Calculator
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/6bing/p/4113843.html
Copyright © 2011-2022 走看看