leetcode【 1002 查找常用字符】

在这里插入图片描述
这个题解来源于官方题解!

char** commonChars(char** A, int ASize, int* returnSize) {
    
    
    int minfreq[26], freq[26];
    for (int i = 0; i < 26; ++i) {
    
    
        minfreq[i] = INT_MAX;
        freq[i] = 0;
    }
    for (int i = 0; i < ASize; ++i) {
    
    
        memset(freq, 0, sizeof(freq));
        int n = strlen(A[i]);
        for (int j = 0; j < n; ++j) {
    
    
            ++freq[A[i][j] - 'a'];
        }
        for (int j = 0; j < 26; ++j) {
    
    
            minfreq[j] = fmin(minfreq[j], freq[j]);
        }
    }

    int sum = 0;
    for (int i = 0; i < 26; ++i) {
    
    
        sum += minfreq[i];
    }

    char** ans = malloc(sizeof(char*) * sum);
    *returnSize = 0;
    for (int i = 0; i < 26; ++i) {
    
    
        for (int j = 0; j < minfreq[i]; ++j) {
    
    
            ans[*returnSize] = malloc(sizeof(char) * 2);
            ans[*returnSize][0] = i + 'a';
            ans[*returnSize][1] = 0;
            (*returnSize)++;
        }
    }
    return ans;
}

猜你喜欢

转载自blog.csdn.net/qq_45657288/article/details/109087558