Skip to content

Commit e71bf37

Browse files
authored
Update 395.Longest-Substring-with-At-Least-K-Repeating-Characters_v1.cpp
1 parent 62a31ce commit e71bf37

1 file changed

Lines changed: 19 additions & 12 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -1,24 +1,31 @@
11
class Solution {
22
public:
3-
int longestSubstring(string s, int k) {
4-
unordered_map<int,int>Map;
5-
for (int i=0; i<s.size(); i++)
6-
Map[s[i]]++;
7-
8-
int result = 0;
3+
int longestSubstring(string s, int k)
4+
{
5+
unordered_map<char,int>Map;
6+
for (auto ch: s)
7+
Map[ch]++;
8+
9+
int flag = 1;
10+
for (auto x: Map)
11+
if (x.second < k)
12+
{
13+
flag = 0;
14+
break;
15+
}
16+
if (flag) return s.size();
17+
18+
int ret = 0;
919
for (int i=0; i<s.size(); i++)
1020
{
1121
if (Map[s[i]]<k) continue;
1222
int j = i;
1323
while (j<s.size() && Map[s[j]]>=k)
1424
j++;
15-
if (j-i==s.size())
16-
return s.size();
17-
else
18-
result = max(result, longestSubstring(s.substr(i,j-i),k));
19-
i = j-1;
25+
ret = max(ret, longestSubstring(s.substr(i,j-i), k));
26+
i = j;
2027
}
2128

22-
return result;
29+
return ret;
2330
}
2431
};

0 commit comments

Comments
 (0)