educative.io

Longest Subarray with Ones after Replacement (hard) - program check

def length_of_longest_substring(str, k):
#####first block
start=0
charFreq={}
maxRepeatingLetter=0
maxLength=0
for end in range(len(str)):
rightEnd=str[end]
if rightEnd not in charFreq:
charFreq[rightEnd]=0
charFreq[rightEnd]+=1

maxRepeatingLetter = max(maxRepeatingLetter, charFreq[rightEnd])
if (end-start +1 - maxRepeatingLetter)>k:
  leftEnd=str[start]
  charFreq[leftEnd]-=1
  start+=1
maxLength = max(maxLength, end-start+1)

return maxLength

#####Second block
start=0
charFreq={}
maxLen=0
maxContinousOcc=0
for end in range(len(arr)):
rightEnd=arr[end]
if rightEnd not in charFreq:
charFreq[rightEnd]=0
charFreq[rightEnd]+=1

maxContinousOcc=max(maxContinousOcc, charFreq[rightEnd])
if (end-start+1-maxContinousOcc)>k:
  leftEnd=charFreq[start]
  charFreq[leftEnd]-=1
  start+=1
maxLen=max(maxLen, end-start+1)

def main():
print(length_of_longest_substring([0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1], 2))

main()

First block works perfectly fine and the second block does not for the given set of inputs.
Please help