/**
* Note: The returned array must be malloced, assume caller calls free().
*/
#define LEN 0xffff
char ** commonChars(char ** A, int m, int* returnSize){
int arr[m][256];
int i, j, min;
char **ret = (char **)malloc(sizeof(char *) * LEN);
int index = 0;
memset(arr, 0, sizeof(arr));
for(i=0; i<m; i++){
j = 0;
while(A[i][j]){
arr[i][A[i][j]]++;
j++;
}
}
for(i=0; i<256; i++){
min = INT_MAX;
for(j=0; j<m; j++){
if(arr[j][i] && arr[j][i]<min){
min = arr[j][i];
}else if (!arr[j][i]){
min = INT_MAX;
break;
}
}
if(min == INT_MAX) continue;
//printf("%c = %d\n", i, min);
for(j=0; j<min; j++){
ret[index] = (char *)malloc(sizeof(char ) * 2);
ret[index][0] = i;
ret[index][1] = 0;
index++;
}
}
*returnSize = index;
return ret;
}
leetcode-1002-查找常用字符-C语言
最新推荐文章于 2024-05-18 07:00:00 发布