zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 101 A. Regular Bracket Sequence

    原文链接
    题目传送门

    题面过长,就不放了

    题目解析

    这道题需要仔细读题 审题很重要

    读完题后,第一反应是括号匹配(本人掉入此坑浪费了大量时间),但是仔细读题后,你会发现事情不是那么简单(其实是你想复杂了)。

    本题需要注意两点:

    1. ?可以任意替换成 (或者 )
    2. 测试数据中只会出现一对括号

    弄明白这两点之后,其实本题的难度就大大下降了。既然可以替换成 () ,那么在大多数情况下,一串字符是可以构成RBS的。所以可以试着采用贪心策略,分析一下哪些情况无法构成RBS。首先,为了保证括号互相匹配,就得保证字符串的长度为偶数,那么当字符串的长度为奇数时,必定无法构成RBS;其次,如果开头为)或结尾为(,则必定无法构成RBS。所以,当字符串长度为奇数,如果开头为)或结尾为(,则必定无法构成RBS,其余情况下都能构成。

    AC代码

    #include<iostream>
    using namespace std;
    int main(){
        int t;
        cin >> t;
        while(t--){
            string s;
            cin >> s;
            int len = s.length();
            if(s[0] == ')' || s[len - 1] == '(' || len ^ 1)
                cout << "NO" << endl;
            else cout << "YES" << endl;
        }
        
        return 0;
    }
    
  • 相关阅读:
    算法复习:字符串
    【第五天打卡。
    【第四天打卡。
    【第三天打卡。
    第二天打卡。
    【唉
    配环境到崩溃系列
    所谓环境……
    【随便吐槽
    第四天。打卡。【偷懒了两天hhhh
  • 原文地址:https://www.cnblogs.com/FrankOu/p/14236617.html
Copyright © 2011-2022 走看看