Content

给定 \(T\) 个仅包含大写字母 ABC 的字符串 \(s\)。问你是否能够通过将每个 ABC 换成 () 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序列能够完全匹配。

数据范围:\(1\leqslant t\leqslant 10^3\),\(2\leqslant |s|\leqslant 50\)。

Solution

不愧是 bruteforces,开头第一题就来暴力。

我的想法是直接枚举每个字母换成左括号还是右括号。排除全是左括号和全是右括号的情况以后,得到的就只有 \(6\) 种情况:

A B C
1 ( ( )
2 ( ) (
3 ( ) )
4 ) ( (
5 ) ( )
6 ) ) (

拿这六种情况一一代入原字符串里面中,只要有一种情况能够将原字符串变换之后的括号序列能够完全匹配就是 YES,如果六种情况全部都不能匹配就是 NO

感觉没人比我更暴力了(

Code

std :: map<char, int> vis; 

inline bool check(std :: string s) {
std :: stack<char> q; int lens = s.size();
F(i, 0, lens - 1) {
if(s[i] == '(') q.push(s[i]);
else {
if(q.empty()) return 0;
q.pop();
if(q.empty() && s[i + 1] == ')') return 0;
}
}
return q.empty();
} int main() {
//freopen(".in", "r", stdin);
//freopen(".out", "w", stdout);
MT {
vis.clear();
crstr(s, len);
std :: string tmp = s;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'B') s[i] = '(';
else s[i] = ')';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'C') s[i] = '(';
else s[i] = ')';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A') s[i] = '(';
else s[i] = ')';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A') s[i] = ')';
else s[i] = '(';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'C') s[i] = ')';
else s[i] = '(';
}
if(check(s)) {puts("Yes"); continue;}
s = tmp;
F(i, 0, len - 1) {
if(s[i] == 'A' || s[i] == 'B') s[i] = ')';
else s[i] = '(';
}
if(check(s)) puts("Yes");
else puts("No");
}
return 0;
}

CF1494A ABC String 题解的更多相关文章

  1. AtCoder ABC 242 题解

    AtCoder ABC 242 题解 A T-shirt 排名前 \(A\) 可得 T-shirt 排名 \([A+1,B]\) 中随机选 \(C\) 个得 T-shirt 给出排名 \(X\) ,求 ...

  2. [LeetCode] Decode String 题解

    题目 题目 s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return " ...

  3. 多校第十场1009 CRB and String题解

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5414 题意:给你两个字符串s和t,你能够在字符串s中随意选一个字符c,在该字符c后插入一个字符d(d! ...

  4. csp-s模拟测试b组加餐antipalindome,randomwalking,string题解

    题面:https://www.cnblogs.com/Juve/articles/11599318.html antipalindome: 打表找规律? 对于一个回文串,我们只要保证3位以内不回文即可 ...

  5. HDU3336 Count the string 题解 KMP算法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题目大意:找出字符串s中和s的前缀相同的所有子串的个数. 题目分析:KMP模板题.这道题考虑 n ...

  6. CF23A You're Given a String... 题解

    Content 给定一个长度为 \(n\) 的字符串,求出至少出现两次的最长子串的长度. 数据范围:\(1\leqslant n\leqslant 100\). Solution 我们直接暴力求出每个 ...

  7. @atcoder - AGC036E@ ABC String

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个仅由 A, B, C 组成的字符串 S. 求 S 的一个 ...

  8. Codeforces #698 (Div. 2) E. Nezzar and Binary String 题解

    中文题意: 给你两个长度为 \(n\) 的01串 \(s,f,\)有 \(q\) 次询问. 每次询问有区间 \([\ l,r\ ]\) ,如果 \([\ l,r\ ]\) 同时包含\(0\)和\(1\ ...

  9. CF1440A Buy the String 题解

    Content 有 \(t\) 组询问,每组询问给出一个长度为 \(n\) 的 \(0/1\) 串,你可以花 \(h\) 的代价把 \(0\) 修改成 \(1\) 或者把 \(1\) 修改成 \(0\ ...

随机推荐

  1. vscode 整理————开篇之力(一)

    前言 作为一个开发为什么对一个vscode 这样的工具进行整理呢,因为vscode 非常的常用,它包含很多编辑器共同有的特征,这些特征帮助我们了解其他编辑器. 这里可能就有人疑问了,我们需要去非常的关 ...

  2. spring security 认证源码跟踪

    spring security 认证源码跟踪 ​ 在跟踪认证源码之前,我们先根据官网说明一下security的内部原理,主要是依据一系列的filter来实现,大家可以根据https://docs.sp ...

  3. 详解在Linux中安装配置MySQL

    最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在Linux中安装配置MySQL 安装环境 CentOS7 + MySQL5.7 下载安 ...

  4. bzoj4036 / P3175 [HAOI2015]按位或

    bzoj4036 / P3175 [HAOI2015]按位或 是一个 min-max容斥 的板子题. min-max容斥 式子: $ \displaystyle max(S) = \sum_{T\su ...

  5. 微前端框架 single-spa 技术分析

    在理解微前端技术原理中我们介绍了微前端的概念和核心技术原理.本篇我们结合目前业内主流的微前端实现 single-spa 来说明在生产实践中是如何实现微前端的. single-spa 的文档略显凌乱,概 ...

  6. 毕业设计之zabbix=[web检测

    网站对一个公司来说非常重要,里边包含了公司的业务,介绍和订单等相关信息,网站的宕掉了对公司的影响非常重大,所以要很好的对网站的页面进行监控 创建web场景 各部分介绍: Name:唯一的scenari ...

  7. 短序列组装Sequence Assembly(转载)

    转载:http://blog.sina.com.cn/s/blog_4af3f0d20100fq5i.html 短序列组装(Sequence assembly)几乎是近年来next-generatio ...

  8. liveBOS环境搭建

    环境搭建:1.准备jdk1.6及以上版本oracle11gplsqlsql脚本(oracle_init.sql,oracle_insert.sql)livebos_tomcatlivebos的授权文件 ...

  9. MySQL:事务常用语句

    Mysql(版本是8)的事务隔离级别 默认是RR:REPEATABLE-READ:可重复读 查看 当前隔离级别 全局隔离级别  修改 -- 当前修改 -- 设置成可重复读 SET transactio ...

  10. CSS上下左右居中对齐

    上下左右居中对齐 display:  inline/inline-block 将父元素(容器)设定 text-align: center: 即可左右置中. display: block 将元素本身的 ...