[JOISC2014]JOIOJI
2024-09-19 06:51:10
题目大意:
给你一串仅包含'J''O''I'的字符串,问满足三种字符出现次数相等的最大字串是多少?
思路:
用map存一下出现次数前缀和两两之差出现的最早位置,每次看一下当前的两两之差最早的出现位置是多少。
#include<map>
#include<cstdio>
#include<cctype>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'';
while(isdigit(ch=getchar())) x=(((x<<)+x)<<)+(ch^'');
return x;
}
inline char getalpha() {
register char ch;
while(!isalpha(ch=getchar()));
return ch;
}
std::map<std::pair<int,int>,int> map;
int main() {
const int n=getint();
int ans=;
map[std::make_pair(,)]=;
for(register int i=,s[]={,,};i<=n;i++) {
char ch=getalpha();
if(ch=='J') s[]++;
if(ch=='O') s[]++;
if(ch=='I') s[]++;
std::pair<int,int> p=std::make_pair(s[]-s[],s[]-s[]);
if(map.count(p)) {
ans=std::max(ans,i-map[p]);
} else {
map[p]=i;
}
}
printf("%d\n",ans);
return ;
}
最新文章
- 使用reflux进行react组件之间的通信
- JAVA_Collection容器
- HBuilder打包ios应用
- 【Go】http server 性能测试
- 文件频繁IO能有多大的差别
- mysql 5.7 多源复制 原创
- less 能加快css编写?
- React组件一
- cocos2d/-x 用CCRenderTexture为一个CCLabelTTF创建阴影。
- MVC 检测用户是否登录
- Android ProgressBar 反向进度条/进度条从右到左走
- Q_DISABLE_COPY
- C语言嵌套循环
- Linux上安装Libssh2
- Linux学习之CentOS(十六)-----内存置换空间(swap)之建置(转)
- 如何实现Echart不刷新页面,多语言切换下的地图数据重新加载,api请求数据加载,soketed数据实时加载
- js 监听手机端键盘弹出和收起事件
- FTP(虚拟用户,并且每个虚拟用户可以具有独立的属性配置)
- Android SDK版本号 与 API Level 对应关系
- SQL Server 损坏修复 之一 常见错误解读
热门文章
- 使用T4模板生成MySql数据库实体类
- java封装的使用
- [Leetcode Week9]Word Break II
- Codeforces #107 DIV2 ABCD
- appium===setup/setupclass的区别,以及@classmathod的使用方法
- platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备【转】
- Perl的Expect模块学习
- StringUtils工具类的使用
- PL/SQL 05 存储过程 procedure
- SSM+Maven的JavaWeb项目中的异常的可能性