Count of substrings of length K with exactly K distinct characters | C # program to find the count of k length substrings with k distinct characters using sliding window ; 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 ; Driver code ; string str ; integer K ; Print the count of K length substrings with k distinct characters
using System ; using System . Collections . Generic ; class GFG { public static int countSubstrings ( string str , int K ) { int N = str . Length ; int answer = 0 ; Dictionary < char , int > map = new Dictionary < char , int > ( ) ; for ( int i = 0 ; i < K ; i ++ ) { if ( ! map . ContainsKey ( str [ i ] ) ) { map [ str [ i ] ] = 1 ; } else { map [ str [ i ] ] ++ ; } } if ( map . Count == K ) answer ++ ; for ( int i = K ; i < N ; i ++ ) { if ( ! map . ContainsKey ( str [ i ] ) ) { map [ str [ i ] ] = 1 ; } else { map [ str [ i ] ] ++ ; } map [ str [ i - K ] ] -- ; if ( map [ str [ i - K ] ] == 0 ) { map . Remove ( str [ i - K ] ) ; } if ( map . Count == K ) { answer ++ ; } } return answer ; } public static void Main ( string [ ] args ) { string str = " aabcdabbcdc " ; int K = 3 ; Console . Write ( countSubstrings ( str , K ) ) ; } }