Count of substrings of length K with exactly K distinct characters | Function to return the required count of substrings ; Store the count ; Store the count of distinct characters in every window ; Store the frequency of the first K length substring ; Increase frequency of i - th character ; If K distinct characters exist ; Traverse the rest of the substring ; Increase the frequency of the last character of the current substring ; Decrease the frequency of the first character of the previous substring ; If the character is not present in the current substring ; If the count of distinct characters is 0 ; Return the count ; string str ; integer K ; Print the count of K length substrings with k distinct characters
function countSubstrings ( str , K ) { var N = str . length ; var answer = 0 ; var map = new Map ( ) ; for ( var i = 0 ; i < K ; i ++ ) { if ( map . has ( str [ i ] ) ) map . set ( str [ i ] , map . get ( str [ i ] ) + 1 ) else map . set ( str [ i ] , 1 ) } if ( map . size == K ) answer ++ ; for ( var i = K ; i < N ; i ++ ) { if ( map . has ( str [ i ] ) ) map . set ( str [ i ] , map . get ( str [ i ] ) + 1 ) else map . set ( str [ i ] , 1 ) if ( map . has ( str [ i - K ] ) ) map . set ( str [ i - K ] , map . get ( str [ i - K ] ) - 1 ) if ( map . has ( str [ i - K ] ) && map . get ( str [ i - K ] ) == 0 ) { map . delete ( str [ i - K ] ) ; } if ( map . size == K ) { answer ++ ; } } return answer ; } var str = " " ; var K = 3 ; document . write ( countSubstrings ( str , K ) ) ;