包含全部字母的最小字串(双指针)
链接:https://ac.nowcoder.com/acm/contest/79240/C
来源:牛客网
给出一个字符串s
,s
仅由小写字母组成,求s
中包含所有个小写字母的最小子串长度。
输入描述:
一行一个字符串S。只包含小写字母。S 的长度不超过.
输出描述:
一行一个数字,代表字符串 S 的所有优美子串的最短长度。数据保证存在一个合法的 S 的子串。
示例1
输入
ykjygvedtysvyymzfizzwkjamefxjnrnphqwnfhrnbhwjhqcgqnplodeestu
输出
49
示例2
输入
asdgfhjjagsdghfhjkljklhlkzxmnbzxcmnbvqweyutryewiuortypouyuip
输出
46
这个题一眼双指针,如果不会双指针的可以看看这个我一个学长的公众号
https://mp.weixin.qq.com/s/2Ai1aG2hjy4fyAPzflwU8w
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=1e6+100;
typedef long long ll;
char a[maxn];
int len;
int cnt[maxn];
int main(){
scanf("%s",a+1);
len=strlen(a+1);
int ans=len,s=0;
int l=1;
for(int r=1;r<=len;r++){
if(cnt[a[r]-'a']==0){
s++;
}
cnt[a[r]-'a']++;
while(s==26){
ans=min(ans,r-l+1);
if(cnt[a[l]-'a']==1){
s--;
}
cnt[a[l]-'a']--;
l++;
}
}
cout<<ans<<endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端