51nod-【1127 最短的包含字符串】
来源:互联网 发布:mac 命令行 u盘路径 编辑:程序博客网 时间:2024/05/21 18:49
1127 最短的包含字符串
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
收藏
关注
给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。
Input
第1行,1个字符串。字符串的长度 <= 100000。
Output
输出包含A-Z的最短子串长度。如果没有符合条件的子串,则输出No Solution。
Input示例
BVCABCDEFFGHIJKLMMNOPQRSTUVWXZYZZ
Output示例
28
#include<cstdio>#include<cstring>int get_min(int a,int b){if(a<b)return a;return b; } char s[110000];int num[110000]; int main(){scanf("%s",s);int len=strlen(s),i;memset(num,0,sizeof(num));int ans=len+1,j=0,sum=0;i=0;while(1){while(j<len&&sum<26){if(!num[s[j]]){++sum;num[s[j]]++; } elsenum[s[j]]++;++j; } if(sum<26)break;while(num[s[i]]!=1){num[s[i]]--;++i; }num[s[i]]-=1;--sum;ans=get_min(j-i,ans); i+=1;}if(ans<=len)printf("%d\n",ans);elseprintf("No Solution\n"); return 0;}
0 0
- 51nod 1127 最短包含字符串
- 51nod 1127 最短的包含字符串 (滑动窗口)
- 51NOD 1127 最短的包含字符串
- 51Nod-1127-最短的包含字符串
- 51NOD 1127 最短的包含字符串 尺取法
- 51nod 1127 最短的包含字符串(滑窗)
- 51NOD 1127 最短的包含字符串(尺取法)
- 51nod 1127 最短的包含字符串
- 51nod-【1127 最短的包含字符串】
- 51nod 1127 最短的包含字符串
- 51nod 1127 最短的包含字符串【尺取法】
- 51Nod 1127 最短的包含字符串
- 51nod 1127 最短的包含字符串 (尺取法)
- 51nod 1127 最短的包含字符串
- 51Nod 1127 最短的包含字符串 (尺取
- 51nod 1127 最短的包含字符串(尺取法)
- 51nod 1127 最短的包含字符串
- 51nod 1127 最短的包含字符串
- 到底vuex是什么?
- 利用Android studio 删除项目中无用资源文件
- IOS 用keychain(钥匙串)保存用户名和密码
- 顶点着色器和像素着色器的数据处理流程
- discuz学习记录:最基本的入口、控制、模板3个文件
- 51nod-【1127 最短的包含字符串】
- Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解
- GiraphV1.2源码阅读记录
- SQLite加密
- Fortran指针初探
- 线程池的使用
- 单片机资源:时间和空间的思考
- 几种常见加密算法解析及使用
- bitmapshader 实现图片的放大镜效果