首页 > Repeated DNA Sequences[leetcode]

Repeated DNA Sequences[leetcode]

void strCpy(char* s, char* d, int from, int size) {
     for (int i = 0; i < size; i++) {
         d[i] = s[from+i];
     }
}
int getVal(char ch) {
  if (ch == 'A') return 0;
  if (ch == 'C') return 1;
  if (ch == 'G') return 2;
  if (ch == 'T') return 3;
}
int hash[1024*1024] = {0};
char** findRepeatedDnaSequences(char* s, int* returnSize) {

    char** rst = (char**)malloc(sizeof(char*) * 100); 
    memset(rst, 0, sizeof(rst));
    int len = strlen(s), size = -1;
    
    unsigned int bit = 0, i = 0;
    for (; i < 9; i++) {
        bit = bit << 2 | getVal(s[i]); 
    }
   
    for (; i < len; i++) {
        bit = bit << 2 & 0xFFFFF | getVal(s[i]);
    
        hash[bit]++;
        if (hash[bit] == 1)  {
           rst[++size] = (char*)malloc(sizeof(char)*10);
           memset(rst[size], 0, sizeof(rst[size]));
           strCpy(s, rst[size], i-9, 10);
        }
    }
    
    *returnSize = size+1;
   
    return rst;
}
leetcode运行是runtime error,但在本地测试的时候,返回的结果为空的字符串数组。
不知道是不是内存溢出的问题?请大家帮忙看一下
【热门文章】
【热门文章】