Maximum length substring having all same characters after k changes | method to find the maximum length of substring having character ch ; traverse the whole string ; if character is not same as ch increase count ; While count > k traverse the string again until count becomes less than k and decrease the count when characters are not same ; length of substring will be rightIndex - leftIndex + 1. Compare this with the maximum length and return maximum length ; method which returns maximum length of substring ; Driver Method
function findLen ( A , n , k , ch ) { let maxlen = 1 ; let cnt = 0 ; let l = 0 , r = 0 ; while ( r < n ) { if ( A [ r ] != ch ) ++ cnt ; while ( cnt > k ) { if ( A [ l ] != ch ) -- cnt ; ++ l ; } maxlen = Math . max ( maxlen , r - l + 1 ) ; ++ r ; } return maxlen ; } function answer ( A , n , k ) { let maxlen = 1 ; for ( let i = 0 ; i < 26 ; ++ i ) { maxlen = Math . max ( maxlen , findLen ( A , n , k , String . fromCharCode ( i + ' ' . charCodeAt ( 0 ) ) ) ) ; maxlen = Math . max ( maxlen , findLen ( A , n , k , String . fromCharCode ( i + ' ' . charCodeAt ( 0 ) ) ) ) ; } return maxlen ; } let n = 5 , k = 2 ; let A = " " ; document . write ( " " + answer ( A , n , k ) + " " ) ; n = 6 ; k = 4 ; let B = " " ; document . write ( " " + answer ( B , n , k ) ) ;