题目链接:https://www.nowcoder.com/acm/contest/161/A
以每个字母为子串的开头对整个字符串扫一遍...
AC代码:
#include <bits/stdc++.h>
using namespace std;
string str;
map<char,int> ma;
int main()
{
cin>>str;
int len = str.length();
int ans = 0x3f3f3f3f,num = 0;
int r = 0,l = 0;
while(1){
while(r < len && num < 26){
if(ma[str[r]] == 0) num ++;
ma[str[r]] ++;
r ++;
}
if(num < 26) break;
ans = min(ans, r - l);
if(ma[str[l]]) ma[str[l]] --;
if(ma[str[l]] == 0) num--;
l ++;
}
printf("%d\n",ans);
return 0;
}
博客给出题目链接https://www.nowcoder.com/acm/contest/161/A,介绍以每个字母为子串开头对整个字符串进行扫描的方法,并给出了对应的AC代码。

438

被折叠的 条评论
为什么被折叠?



