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

    题目描述

    苗苗今天刚刚学会使用小括号,不过他分不清小中大括号和尖括号,不知道怎么使用其他括号,他认为(>以及{]是正确的(其实是错误的),你能帮助他判断括号是否使用正确(匹配)吗?

    解答要求时间限制:1000ms, 内存限制:64MB
    输入

    输入文件包含六组测试数据,每组测试数据是一行只包含’(‘,’)’,’{‘,’}’,’[‘,’]’,’<’,’>’的字符串(长度不超过10000)。

    输出

    对于每组测试数据,如果使用正确输出yes,否则输出no。每个占一行。

    输入样例

    [>
    ([]{<>})
    ({[<>]})
    ()
    ()
    ()

    输出样例 1

    no
    yes
    yes
    yes
    yes
    yes

    提示

    栈的应用:
    依次读入字符,如果是左括号,将它放进栈,如果是右括号,而且栈顶元素是相对应的左括号,就把栈顶元素弹出,最后如果栈空就跳出循环,结果为no,因为这样说明栈中没有左括号;字符全都读入,如果栈空的话,就是yes,否则就是no。

    //
    // Created by l50007414 on 2019/9/18.
    //
    
    #include <stdio.h>
    #include <string.h>
    
    void caculate1(char *data);
    
    typedef struct stack {
        char data[10000];
        int top;
    } stack;
    
    int main() {
        for (int i = 0; i < 6; ++i) {
            char data[10000];
            gets(data);
            caculate1(data);
        }
    
        return 0;
    }
    
    void caculate1(char *data) {
        stack temp = {{0}, -1};
        int size = strlen(data);
        for (int i = 0; i < size; ++i) {
            //如果是左括号  将其入栈
            if (data[i] == '(' || data[i] == '{' || data[i] == '[' || data[i] == '<') {
                temp.data[++temp.top] = data[i];
            } else {
                //如果不是  就将其与栈顶元素比较  不等则出错  相等就出栈
                if ((data[i] == ')' && temp.data[temp.top] == '(') || (data[i] == '}' && temp.data[temp.top] == '{') ||
                    (data[i] == ']' && temp.data[temp.top] == '[')
                    || (data[i] == '>' && temp.data[temp.top] == '<')) {
                    temp.top--;
                } else {
                    printf("no
    ");
                    return;;
                }
            }
        }
        if (temp.top == -1) {
            printf("yes
    ");
        } else {
            printf("no
    ");
        }
    }
  • 相关阅读:
    获取字符串中指定字符间的字符串
    删除一个xml
    读取文件夹下所有文件名,饼写入xml
    在现有xml增加一个新的节点
    某一时间执行某方法c# 写在global里
    Ubuntu下安装Adobe Flash Player
    Josephus(约瑟夫环)
    html5综合属性图表
    第一步
    框架学习的个人见解
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/11547769.html
Copyright © 2011-2022 走看看