题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个字符串,求里面子串的最长长度,该子串需要每个字母不超过两个。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考灵神的模板答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
int maximumLengthSubstring(string s) {
vector<int> rec(26, 0);
int left = 0;
int n = s.size();
int ans = 0;
for (int i = 0; i < n; i++) {
int index = s[i]-'a';
rec[index]++;
while (rec[index] > 2) {
rec[s[left++]-'a']--;
}
ans = max(ans, i-left+1);
}
return ans;
}
};