每日一题 No.5 括号匹配

来源:互联网 发布:天宇全站仪数据导出 编辑:程序博客网 时间:2024/05/28 22:08

本题要求:

现在给出段由’(‘,’)’组成的字符串,让你判断他们是否匹配。

输入格式:

输入一行字符串(只包含’(‘和’)’)。

输出格式:

匹配则输出YES,否则输出NO。

输入样例:

()()((()))()()((((((((())))))))

输出样例:

NO

解题思路 :

Created with Raphaël 2.1.0startaa[i]='\0'flag=trueYESendNOa[i]='('pushtop!='('flag=falseyesnoyesnoyesnoyes

代码 :

#include <iostream>using namespace std;int main() {    char stack[100];    int f = -1;    char a[101];    cin >> a;    bool flag = true;    for (int i = 0; a[i] != '\0'; i++) {        if (a[i] == '(') {            stack[++f] = a[i];        } else {            if (f == -1) {                flag = false;                continue;            }             char c = stack[f--];            if (c != '(') {                flag = false;            }        }    }    if (f != -1) {        flag = false;    }     if (flag) {        cout << "YES" << endl;    } else {        cout << "NO" << endl;    }    return 0;}
0 0
原创粉丝点击