701 C. They Are Everywhere
链接
[http://codeforces.com/group/1EzrFFyOc0/contest/701/problem/C]
题意
给你一个包含大小写字母长度为n的字符串,让你找包含所有种类字符的最短串
分析
其实这个用尺取法,先从开始找包含各种字符的串,然后不断地贪心取最小ans,具体看代码
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,i;
string s;
int a[140],b[140];
//freopen("in.txt","r",stdin);
while(cin>>n){
cin>>s;
int sum=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<n;i++)
a[s[i]]=1;
for(i=50;i<='z';i++)
sum+=a[i];
//cout<<sum<<endl;
memset(a,0,sizeof(a));
int ans=n,st=0,cnt=0;
for(i=0;i<n;i++){
if(s[i]>='a'&&s[i]<='z'){
if(!a[s[i]-'a']){
cnt++;
}
a[s[i]-'a']++;
}
else {
if(!b[s[i]-'A'])
cnt++;
b[s[i]-'A']++;
}
if(cnt==sum){
while(cnt==sum){
if(i-st+1<ans) ans=i-st+1;
if(s[st]>='a'&&s[st]<='z'){
a[s[st]-'a']--;
if(!a[s[st]-'a'])
cnt--;
}
else {
b[s[st]-'A']--;
if(!b[s[st]-'A'])
cnt--;
}
st++;
}
}
}
cout<<ans<<endl;
}
return 0;
}
701 C. They Are Everywhere的更多相关文章
- 1Z0-053 争议题目解析701
1Z0-053 争议题目解析701 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 701.A user receives the following error while per ...
- SQL 2008执行语句遇到内存不足(1)——error 701
原文:SQL 2008执行语句遇到内存不足(1)--error 701 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/17/sql-2008-e ...
- uva 701 - The Archeologists' Dilemma
题目链接:uva 701 - The Archeologists' Dilemma 题目大意:给出x,求一个e,使得x * 10 ^ y ≤ 2 ^ e < (x + 1) * 10 ^ y. ...
- IOS 拨打电话:4006 701 855 苹果中国
IOS 拨打电话:4006 701 855 苹果中国
- codeforces 701 E. Connecting Universities(树+ 边的贡献)
题目链接:http://codeforces.com/contest/701/problem/E 题意:有n个城市构成一棵树,一个城市最多有一个学校,这n个城市一共2*k个学校,要对这2*k个学校进行 ...
- codeforces 701 D. As Fast As Possible(数学题)
题目链接:http://codeforces.com/problemset/problem/701/D 题意:给你n个人,每个人走路的速度v1,有一辆车速度为v2,每次可以载k个人,总路程为l,每个人 ...
- Java实现 LeetCode 701 二叉搜索树中的插入操作(遍历树)
701. 二叉搜索树中的插入操作 给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入 ...
- uva 701
参考了一下http://hi.baidu.com/renxl51/item/e80b688f9f54aadd5e0ec1de 给一个数字x,求最小的正整数e,使得pow(2,e) == x*pow(1 ...
- T-SQL的进阶:超越基本级别3:构建相关子查询——701小组
T-SQL的进阶:超越基本级别3:构建相关子查询 格雷戈里·拉森,2014/03/05 原文链接: http://www.sqlservercentral.com/articles/Stairway+ ...
随机推荐
- .net 调用R语言的函数(计算统计值pvalue 对应excel :ttest)
Pvalue 计算 项目设计pvalue计算,但是由于.net 没有类似的公式或者函数,最终决定使用.net 调用R语言 采用.net 调用r语言的公用函数 需要安装 r语言环境 https://mi ...
- 【Lucene4.8教程之中的一个】使用Lucene4.8进行索引及搜索的基本操作
版权声明:本文为博主原创文章.转载请注明来自http://blog.csdn.net/jediael_lu/ https://blog.csdn.net/jediael_lu/article/deta ...
- 分布式服务化系统一致性(分布式事务、ACID、BASE、CAP)原理与解决方案
https://blog.csdn.net/rickiyeat/article/details/70224722
- 卡尔曼滤波跟踪 opencv
0 卡尔曼OPENCV 预测鼠标位置 卡尔曼滤波不要求信号和噪声都是平稳过程的假设条件.对于每个时刻的系统扰动和观测误差(即噪声),只要对它们的统计性质作某些适当的假定,通过对含有噪声的观测信号进行处 ...
- go标准库的学习-database/sql/driver
参考:https://studygolang.com/pkgdoc 1>导入方式: import "database/sql/driver" driver包定义了应被数据库驱 ...
- Linux 性能分析工具汇总合集
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章.本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面.如果没有完善的计算机系统知识,网络知识和操作系统知识, ...
- 华为交换机常用命令(以s5700-SI为例)
交换机的三种模式: Access模式: 一般用来连接计算机与交换机. 此模式下有一个PVID就是本端口所属的VLAN号,如果从链路上收到无标签的帧,则打上默认VLAN号,然后发给其他端口,如果从链路上 ...
- Mybatis集成(转)
文章转自http://blog.csdn.net/l454822901/article/details/51829653 什么是Mybatis MyBatis 本是apache的一个开源项目iBati ...
- Qt读取文件时中文乱码问题
在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的.之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来. 文本文件含有简 ...
- python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)
昨日内容回顾 队列 队列 : 先进先出.数据进程安全 队列实现方式: 管道 + 锁 生产者消费者模型 : 解决数据供需不平衡 管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引 ...