1127 最短的包含字符串
2015-06-09 10:15
405 查看
O(n)处理即可。
#include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> #include <string> #include <vector> #include <deque> #include <queue> #include <algorithm> using namespace std; const int maxn = 100000; const int inf = 0x3f3f3f3f; char s[maxn]; int cnt[30]; deque<int> dq; int cur_cnt, n; int main() { int ans = inf; scanf("%s", s); n = strlen(s); cur_cnt = 0; for(int i = 0; i < n; ++i) { dq.push_back(i); if(cnt[s[i]-'A'] == 0) { cur_cnt++; } cnt[s[i]-'A']++; if(cur_cnt >= 26) { while(cur_cnt >= 26) { ans = min(ans, dq.back() - dq.front() + 1); if(--cnt[s[dq.front()]-'A'] == 0) { --cur_cnt; } dq.pop_front(); } } } if(ans < inf) printf("%d\n", ans); else printf("No Solution\n"); return 0; }
相关文章推荐
- 对于node.js开发指南中博客案例的修改实现(一)--开发环境搭建
- SystemVerilog学习心得【持续更新】
- 在ViewPager中使用Fragment嵌套问题
- listview指定某item的点击效果
- Asp.net中web.config配置文件详解
- 截取上传的文件路径
- Java泛型 类型擦除在继承中引入的问题及编译器的解决方法
- ubuntu Linux software install unable to locate package xxx
- Linux下设置export JAVA_OPTS选项进行tomcat JVM内存设置【 linux下tomcat的参数JAVA_OPTS必须设在catalina.sh中cygwin=false前】
- 日经社説 20150609 中東に欠かせぬトルコの役割
- 天声人語 20150609
- Java Socket编程
- Android Studio 快捷键(MAC)
- Oracle数据库闪回数据与表
- Android实战简易教程-第十二枪(ViewFlipper实现幻灯效果)
- 【转】44款Java 网络爬虫开源软件
- Eclipse for Mac 常用快捷键
- 两个类之间的消息机制
- Android中3种全屏方法及3种去掉标题栏的方法
- 日经春秋 20150609