码迷,mamicode.com
首页 > 其他好文 > 详细

CF1214C

时间:2019-09-05 21:42:40      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:==   pause   元素   ret   序列   交换   include   ++   std   

CF1214C

题意:

给你一个括号序列,问你时候能仅移动相邻的两个元素,使括号序列合法。

解法:

可以先考虑普通括号序列怎么做
这道题只交换相邻的两个元素,所以如果中间左括号和右括号的差值大于2时,括号就不合法。

CODE:

#include<bits/stdc++.h>
 
using namespace std; 
 
#define LL long long
#define N 200010
 
char s[N]; 
int n,l,r,cnt; 
 
int main() {
    scanf("%d",&n);
    for (int i = 0 ; i < n ; i++) {
        cin>>s; 
        if(s[i] == '(') l++; 
        else r++; 
    }
    for(int i = 0 ; i < n ; i++) {
        if(s[i] == '(') cnt++; 
        else cnt--; 
        if(cnt < -1) {
            puts("No");
           // system("pause"); 
            return 0; 
        }
    }
    if(l != r) puts("No"); 
    else puts("Yes");
    //system("pause"); 
    return 0; 
}

CF1214C

标签:==   pause   元素   ret   序列   交换   include   ++   std   

原文地址:https://www.cnblogs.com/Repulser/p/11469934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!