Skip to content

Commit 4a59b8d

Browse files
committed
424
1 parent bfc0179 commit 4a59b8d

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
def character_replacement(s, k)
2+
return 0 if s.length.zero?
3+
return 1 if s.length == 1
4+
5+
max = 0
6+
window = []
7+
dict = Hash.new(0)
8+
left = 0
9+
right = left
10+
while true
11+
break if s[right].nil?
12+
13+
char = s[right]
14+
window << char
15+
dict[char] += 1
16+
until window.length - highest_freq(dict) <= k
17+
dict[window.shift] -= 1
18+
left += 1
19+
end
20+
max = window.length if window.length > max
21+
right += 1
22+
end
23+
max
24+
end
25+
26+
def highest_freq(dict)
27+
max = 0
28+
dict.each { |_k, v| max = v if v > max }
29+
max
30+
end

0 commit comments

Comments
 (0)