Is there any better approach?

my code is giving tle

Hi @Deepanshu_garg
Your code implements an O(n^2) approach .
Since it is mentioned in the problem that size of string can be as large as 10^5 , an O(n^2) approach is bound to give a TLE.
You need to use a O(n logn) approach or a O(n) approach to solve this problem.

You can solve this problem in O(n) time using the two pointer approach.
Make two variabes , say i and j .
i defines the beginning of a window and j defines its end.
Start i from 0 and j from k.
Let’s talk about the singular case when we are considering the max window for only 'a’s and consider only the swapping of b-> a. If we are able to get the answer for max window of consecutive 'a’s , we can simply implement the same algo for the max β€˜b’ window as well.

So we started i from 0 and j from k.
Move j ahead freely as long as there are β€˜a’ characters at s[ j ] position.
Maintain a count variable which counts the number of swaps made or the number of 'b’s in our A window.
If you encounter a β€˜b’ char at s[ j ] position , increment the count variable. Count should never exceed k .
Take the size of the window at every point using length = j - i + 1;
Compute the max size window this way and do the same for β€˜b’ as well.
Output the maximum size window of β€˜a’ and β€˜b’.