官方题解|无重复字符的子串
2024-12-15 22:02:49
发布于:浙江
20阅读
0回复
0点赞
题目解析
模拟;枚举
由于不含重复字符的字符串最长为 ,所以我们可以暴力枚举每个起点为 的子串,并使用数组 cnt
来统计每一个字符出现的次数,若在向后遍历的过程中,发现某个字符已经出现过,则停止向后遍历。
AC代码
#include <bits/stdc++.h>
int main() {
std::cin.tie(nullptr)->sync_with_stdio(false);
std::string s; std::cin >> s;
int n = s.size(), res = 0;
for (int i = 0; i < n; ++i) {
int cnt[26]{};
for (int j = i; j < n; ++j) {
if (++cnt[s[j] - 'a'] > 1) break;
res += 1;
}
}
std::cout << res << '\n';
return 0;
}
这里空空如也
有帮助,赞一个