func_code_string: #include <bits/stdc++.h>   using namespace std;   bool sip;   char A[100005], B[100005];   int C[35], D[35], tam1, tam2, res = 0, puede = 0, quedan;   int main() {     scanf( %s%s , A, B);     for (tam1 = 0; A[tam1] !=   0 ; tam1++)       ;     for (tam2 = 0; B[tam2] !=   0 ; tam2++)       ;     if (tam2 > tam1) {       printf( 0 n );       return 0;     }     for (int i = 0; i < tam2; i++) {       ++D[B[i] -  a ];     }     for (int i = 0; i < tam2; i++) {       if (A[i] !=  ? ) {         ++C[A[i] -  a ];       } else {         ++puede;       }     }     for (int i = 0; i <= tam1 - tam2; i++) {       quedan = puede;       sip = true;       for (int e = 0; e < 26; e++) {         if (C[e] > D[e] or D[e] - C[e] > quedan) {           sip = false;           break;         } else {           quedan -= (D[e] - C[e]);         }       }       if (sip) {         ++res;       }       if (i == tam1 - tam2) {         continue;       }       if (A[i] ==  ? ) {         --puede;       } else {         --C[A[i] -  a ];       }       if (A[i + tam2] ==  ? ) {         ++puede;       } else {         ++C[A[i + tam2] -  a ];       }     }     printf( %d n , res);     return 0;   }   