defgetMaxSubstringWithContraints(s, num): vowelSet = ('a', 'e', 'i', 'o', 'u', "A", "E", "I", "O", "U") positions = [i for i, char inenumerate(s) if char in vowelSet]
res = 0 left, right = 0, 0 n = len(positions) while right < n: diff = positions[right] - positions[left] - (right - left) # positions[i]值的变化一定比 i 的变化大,所以 diff 一定是单调递增的 # 保证下面left和right指针的移动是正确的 if diff < num: right += 1 elif diff > num: left += 1 else: res = max(res, right - left + 1) right += 1 return res
if __name__ == '__main__': # 0 num = int(input()) # asdbuiodevauufgh s = input() # 3 ans = getMaxSubstringWithContraints(s, num) print(ans)