字符串括号匹配

简介: 字符串括号匹配


题目描述

输入

输出

样例输入1

a(cc())bbb()@

样例输出1

YES

样例输入2

a(cc()bbb()@

样例输出2

NO

做法1

#include <bits/stdc++.h>
using namespace std;
int main(void) {
    string s;
    cin >> s;
    int depth = 0;
    bool flag = true;
    for (const auto &c: s) {
        if (c == '(') {
            ++depth;
        } else if (c == ')') {
            --depth;
            if (depth < 0) {
                flag = false;
                break;
            }
        } else if (c == '@') {
            break;
        }
    }
    if (depth > 0) flag = false;
    cout << (flag ? "YES" : "NO") << endl;
    return 0;
}
目录
打赏
0
0
0
0
1
分享
相关文章
|
11月前
|
C语言--左旋字符/右旋字符实现及其判断
C语言--左旋字符/右旋字符实现及其判断
49 0
代码随想录Day9 栈与队列 LeetCodeT20 有效的括号 T1047 删除字符串中所有相邻重复项 T150 逆波兰表达式求值
代码随想录Day9 栈与队列 LeetCodeT20 有效的括号 T1047 删除字符串中所有相邻重复项 T150 逆波兰表达式求值
41 0
|
5月前
|
递归魔法:判断字符串是否为回文
本文介绍了如何使用递归判断一个字符串是否是回文。回文字符串是指正读和反读都相同的字符串。文章详细讲解了递归的基本思想和Python实现,并通过多个示例验证了函数的正确性。递归方法通过将大问题分解成更小的子问题,使得判断回文变得简单高效。
159 5
|
11月前
括号匹配问题
括号匹配问题
56 1
|
11月前
|
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
83 0
【字符串】【括号匹配】【广度优先】301. 删除无效的括号
【字符串】【括号匹配】【广度优先】301. 删除无效的括号
【字符串】【括号匹配】【广度优先】301. 删除无效的括号
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
字符串的左旋和判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言实现)
字符串的左旋和判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言实现)
字符串的全排列
字符串的全排列
101 0
逆序字符串 和 字符串的逆序输出 的区别~
逆序字符串 和 字符串的逆序输出 的区别~
136 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等