题目描述
小P马上就要来到程序设计大赛的现场、上了,他希望能够AK这次比赛,所以他找到了一个字符串。
这个字符串长度为n,由A和K组成。这个字符串被小p称为AK串。小P任意截取一个区间s,使得这个区间从左往右或从右往左在读取子串的过程中,子串中字母K的个数始终不小于A的个数。小p希望知道能够截取区间s的最大长度。
如果小p得到了这个区间的最大长度,那么他就会得到一个AK 这次比赛的秘籍,请你帮助他得到这个区间的最大长度。
输入
第一行一个整数n (n<=106),接下来一个长度为n的只含有A,K的字符串
输出
一个整数,区间的最大长度
样例输入 Copy
6
AKAKKA
样例输出 Copy
4
提示
样例解释
取出区间为KAKK 对于30%数据,N<=2000。
对于另外10%数据,a或者k其中一个仅出现一次。
对于全部数据 N<=10^6。

 

错误代码:

//筛选法?  AK
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=;
string str;
int book[];
int b[];
int main()
{
memset(book,,sizeof(book));
memset(b,,sizeof(b));
int n,x=,y=,j,i,tmp=;
cin>>n;
cin>>str;
str=' '+str;
// cout<<str.length()<<endl;
// for(i=1;i<=n;i++) cout<<book[i]<<" ";
for(i=;i<=n;i++){//y>x
if(str[i]=='A') x++;
else y++;
if(y<x) {
book[i]=;
x=;
y=;}
else {
book[i]=book[i-]+;
// cout<<"i="<<i<<endl;
}
}
x=;
y=;
for(i=n;i>=;i--){//y>x
if(str[i]=='A') x++;
else y++;
if(y<x) {
b[i]=;
x=;
y=;}
else {
b[i]=b[i+]+;
// cout<<"i="<<i<<endl;
}
}
for(i=;i<=n;i++) {
if(book[i]&&b[i]) tmp=max(tmp,max(b[i],book[i]));
}
cout<<tmp<<endl; }

AC代码:

#include<bits/stdc++.h>

using namespace std;

int main(){
int n;
cin>>n;
string str;
cin>>str;
int i=,j=;//[i,j]
int a=,k=;
int ans=;
while(){
while(j<str.size()&&k>=a){
if(str[j]=='A')a++;
if(str[j]=='K')k++;
j++;
if(k>=a){
int cnt=;
for(int r=j-;r>=i;r--){
if(str[r]=='A')cnt--;
if(str[r]=='K')cnt++;
if(cnt<)break;
}
if(cnt>=)ans=max(ans,j-i);
}
}
if(k>=a)break;
while(i<j && k<a){
if(str[i]=='A')a--;
if(str[i]=='K')k--;
i++;
}
}
cout<<ans<<endl;
return ;
}

分析:

小P的秘籍的更多相关文章

  1. 这是一篇满载真诚的微信小程序开发干货

    1月9日零点刚过,张小龙与团队正式发布微信小程序.它究竟能在微信8.5亿用户中牵动多少人,现在还很难说.但对于创业者来讲,小程序无疑带来了新契机,以及服务“上帝”们的新方式. 从今天起,只要开发者登录 ...

  2. 用Gitolite 构建 Git 服务器

    转载 Gitolite 构建 Git 服务器 作者: 北京群英汇信息技术有限公司 网址: http://www.ossxp.com/ 版本: 0.1-1 日期: 2010-10-07 14:52:19 ...

  3. Gitolite 构建 Git 服务器

    Gitolite 构建 Git 服务器 Gitolite 构建 Git 服务器作者: 北京群英汇信息技术有限公司网址: http://www.ossxp.com/版本: 0.1-1日期: 2010-1 ...

  4. 微信小程序性能测试之jmeter踩坑秘籍(前言)

    最近要做个微信小程序的性能压测,虽然之前只做过web端的,但想一想都是压后端的接口,所以果断答应了下来,之前对jmeter都是小打小闹,所以趁着这次机会好好摆弄摆弄. ---------------- ...

  5. 小齐读者拿到快手、百度、网易等 offer 的独门秘籍!

    小齐说: 这篇文章来自读者冰红茶,他刚结束了秋招,拿了很多家 offer. 和他聊完之后,我觉得他的备考思路也完全适用于美国的面试,只是分值要调整一下,但是具体每一块的内容,地球村通用.所以分享给大家 ...

  6. 男同胞爱小秘籍--作为爱他的女朋友了几天C规划

    各位男同胞,不知道你的女朋友没有在过去的一问天,你这个问题~~ 场景重现: 女友:"今天天气不错." 你们:"对" 女友:"今天是我们知道它的最初几天 ...

  7. 打造H5里的“3D全景漫游”秘籍

    近来风生水起的VR虚拟现实技术,抽空想起年初完成的“星球计划”项目,总结篇文章与各位分享一下制作基于Html5的3D全景漫游秘籍. QQ物联与深圳市天文台合作,在手Q“发现新设备”-“公共设备”里,连 ...

  8. 屠龙之路_击败DB小boss_FifthDay

    摘要:服务器大魔王被击败的消息传到了恶龙boss那里,恶龙大怒派出了自己的首级大将DB人称小boss,但小boss的名号并没有吓到七位屠龙勇士,经过他们齐心协力的进攻,最终击败了DB,小boss临死前 ...

  9. zero to one:创业秘籍并不存在,因为任何创新都是新颖独特的,任何权威都不可能具体规定如何创新

    彼得·蒂尔(Peter Thiel)的新作<从0到1>从预售开始就占据美国亚马逊排行榜第一名的位置,被一批创业家和企业家评为“迄今为止最好的商业书”.这是一本关于如何创建创新公司的书,主要 ...

随机推荐

  1. CSS杂谈(1)图

  2. [20180926]查询相似索引.txt

    [20180926]查询相似索引.txt --//有时候在表上建立索引比如A,B字段,可能又建立B字段索引,甚至A字段索引以及B,A字段索引,或者还建立C,A字段索引,--//需要有1个脚本查询这些索 ...

  3. SQL Server 锁实验(重建索引)

    昨晚某现场报一个重建索引失败的问题,远程查看后发现是自动收缩的内部会话引发的锁申请超时,突然想起来自己的加锁实验还没完成索引重建部分,今天有空正好做一下: USE [数据库名] GO ALTER IN ...

  4. 转: OVER() 系列函数介绍

    OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返 ...

  5. spring cloud 微服务日志跟踪 sleuth logback elk 整合

    看过我之前的文章的就可以一步一步搭建起日志传输到搜索引擎 不知道的 看下之前的文章 (1) 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引 (2)关 ...

  6. Docker: docker image常用命令实战

    #docker列出镜像[root@192 ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEnginx latest 881bd08c0b08 ...

  7. 【项目 · Wonderland】会议一 · 可达鸭

    [软件工程实践 · 团队项目] 第一次作业 Part 0 · 简 要 目 录 Part 1 · 队 伍 阵 容 Part 2 · 会 议 记 录 相 关 Part 3 · 会 议 讨 论 记 录 Pa ...

  8. 移动端rem flexible方案

    一.px 自动转换为rem sublim Text3 下载本项目,比如:git clone https://github.com/flashlizi/cssrem 进入packages目录(在Subl ...

  9. js模块化规范—AMD规范

    AMD规范说明 AMD全称是:Asynchronous Module Definition(异步模块定义),github地址 是专门用于浏览器端, 模块的加载是异步的 AMD规范基本语法 定义暴露模块 ...

  10. php面试题整理(三)

    判断是不是ie浏览器 1,1