博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cf 550A 字符串统计
阅读量:4113 次
发布时间:2019-05-25

本文共 790 字,大约阅读时间需要 2 分钟。

题意:给你一个字符串长度不超过1e5,求其中是否出现ab和ba子串,且这两个子串没有重叠;
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define MM(a) memset(a,0,sizeof(a)) typedef long long ll; typedef unsigned long long ULL; const int mod = 1000000007; const double eps = 1e-10; const int inf = 0x3f3f3f3f; const int big=50000; int max(int a,int b) {return a>b?a:b;}; int min(int a,int b) {return a
=0;i--) if(a[i]=='B'&&a[i+1]=='A') {yl=min(yl,i);yr=max(yr,i);} if(yl==inf||yr==-1) {printf("NO\n");continue;} if(abs(yl-xr)>1||abs(yr-xl)>1) printf("YES\n"); else printf("NO\n"); } return 0; }
分析:思路很巧妙,,分别统计ab和ba最左和最右出现的位置,然后再贪心的分别取两端判断是否有交点就好

转载地址:http://kxgsi.baihongyu.com/

你可能感兴趣的文章
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>
j2ee-验证码
查看>>
日志框架logj的使用
查看>>
js-高德地图规划路线
查看>>
常用js收集
查看>>
mydata97的日期控件
查看>>
如何防止sql注入
查看>>
maven多工程构建与打包
查看>>
springmvc传值
查看>>
Java 集合学习一 HashSet
查看>>
在Eclipse中查看Android源码
查看>>
Android-Socket登录实例
查看>>
Android使用webservice客户端实例
查看>>
层在页面中的定位
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>