题解 | #字符串#

字符串

https://ac.nowcoder.com/acm/problem/18386

#include

using namespace std;

int st[100];

int main() { string s; cin >> s;

int l, r, cnt = 0, ret;
for(r = 0; r < s.size(); r++)
{
    st[s[r] - 'a'] ++;
    if(st[s[r] - 'a'] == 1) cnt ++;
    if(cnt == 26) break;
}
ret = r, s += "Z";

for(l = 0; l < s.size() && r < s.size(); l++)
{
    //cout << l;
    st[s[l] - 'a'] --;
    while (st[s[l] - 'a'] == 0 && r < s.size() - 1)
    {
        r++, st[s[r] - 'a'] ++;
    }

    //cout << l << ' ' << r << ' ' << st[s[l] - 'a'] << endl;
    if(r == s.size() - 1 && st[s[l] - 'a'] == 0) break; 
    if(st[l] - 'a' > 0) ret = min(ret, r - l);
}

cout << ret;

return 0;

} 不知道错误在哪里 orz

全部评论

相关推荐

头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务