Skip to content

Commit 49fce65

Browse files
committed
Time: 51 ms (11.82%), Space: 45.5 MB (24.26%) - LeetHub
1 parent 3f7641d commit 49fce65

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
class Solution {
2+
public int takeCharacters(String s, int k) {
3+
int n = s.length();
4+
if(s.length() <k*3){
5+
return -1;
6+
}
7+
if(k==0){
8+
return 0;
9+
}
10+
11+
HashMap<Character,Integer> map = new HashMap<>();
12+
for(char ch : s.toCharArray()){
13+
map.put(ch , map.getOrDefault(ch,0)+1);
14+
}
15+
16+
if(map.getOrDefault('a',0)<k || map.getOrDefault('b',0)<k || map.getOrDefault('c',0)<k){
17+
return -1;
18+
}
19+
20+
int ans = n;
21+
22+
int start=0;
23+
int end=0;
24+
int window=0;
25+
while(end<s.length()){
26+
char ch =s.charAt(end);
27+
map.put(ch, map.get(ch)-1);
28+
window++;
29+
30+
while(map.get(ch)<k){
31+
char st =s.charAt(start);
32+
map.put(st, map.get(st)+1);
33+
window--;
34+
start++;
35+
}
36+
ans = Math.min(ans , n - window);
37+
end++;
38+
}
39+
return ans ;
40+
}
41+
}

0 commit comments

Comments
 (0)