当前位置: 首页 > news >正文

C. Queries for the Array - 思维

分析:

        分析出现矛盾的地方,也就是可能遇到0,并且已有字符串的长度小于等于1,另一种情况就是,遇到了1并且已有字符串不是排好序的,或者遇到了0已有字符串是排好序的,那么可以遍历字符串,统计排好序的最大前缀,没有排好序的最小前缀,那么最小没排序的前缀必须大于最大排好序的区间,否则就说明二者矛盾,那么在遍历过程中先单独看每一种情况应该有什么效果,一旦s[i] == '+',那么就让字符串的长度加一,如果s[i] == '-',那么就将字符串的长度减一,同时由于字符串长度减一,如果最大的排好序的长度比当前长度大,说明最大排好序的长度就变为更小的那一段了,所以要更新最大排好序的前缀,然后如果最小存在没排序的区间一旦比当前长度大,说明剩下的字符串可以是排好序的,因为没排好序最优情况下,只有最后一个元素是没有排序的,这种情况那么最小的没排序的长度也就变成了0,如果s[i] == '1',那么就需要更新一下最大排序的长度,如果s[i] == '0',首先判断一下长度是否大于1,如果小于等于1,那么表示矛盾,否则,表示没排序,如果没排序的最小前缀等于0(表示是排好序的),或者当前长度比没排好序的最小前缀要小,那么就需要更新一下没排序的最小前缀,在每次遍历处理完以上其中一种情况后,在进行评判条件是否矛盾,如果更新后的最小前缀小于等于最大的排好序的前缀,那么就表示每吨。

代码:

#include <bits/stdc++.h>using namespace std;
using ll = long long;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T;cin >> T;while(T --) {string s;cin >> s;int minn = 0, maxn = 0;int flag = 0;int cnt = 0;for(int i = 0; i < s.size(); i ++) {if(s[i] == '+') cnt ++;else if(s[i] == '-') {cnt --;maxn = min(maxn, cnt);if(minn > cnt) minn = 0;}else {if(s[i] == '1') {maxn = max(maxn, cnt);}else {if(cnt <= 1) {flag = 1;break;}if(minn == 0 || minn > cnt) minn = cnt;}if(minn <= maxn && minn != 0) {flag = 1;break;}}}if(flag) cout << "NO\n";else cout << "YES\n";}
}

http://www.lryc.cn/news/152935.html

相关文章:

  • 音频——硬件拓扑
  • Oracle表索引查看方法总结(查看oracle表索引)
  • react css 污染解决方法
  • volatile 关键字 与 CPU cache line 的效率问题
  • 又一关键系统上线,理想车云和自动驾驶系统登陆OceanBase
  • SIEM(安全信息和事件管理)解决方案
  • Go 自学:map关联数组
  • c#多态(override)的使用
  • kafka 动态扩容现有 topic 的分区数和副本数
  • 【数据结构】Golang 实现单链表
  • 云服务器利用Docker搭建sqli-labs靶场环境
  • jQuery成功之路——jQuery介绍和jQuery选择器概述
  • 极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统
  • Java--静态字段与静态方法
  • 多线程的五种“打开”方式
  • 信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)
  • Fiddler Response私人订制
  • 【德哥说库系列】-ASM管理Oracle 19C单实例部署
  • 手写一个简单爬虫--手刃豆瓣top250排行榜
  • 【word密码】如何限制word文件中部分内容?
  • spring 自定义类型转换-ConverterRegistry
  • springboot实现发送短信验证码
  • 2024王道408数据结构P144 T18
  • 在windows下安装配置skywalking
  • 关于大模型参数微调的不同方法
  • 方法的引用第一版(method reference)
  • Android DataBinding 基础入门(学习记录)
  • spring 错误百科
  • OpenCV基本操(IO操作,读取、显示、保存)
  • 1.快速搭建Flask项目