2022年11月2日 星期三

[14] Longest Common Prefix

啊~你問我為什麼要先找最小長度, 我不知道吶~哈哈哈~~(被毆飛)
直覺寫法: 
char * longestCommonPrefix(char ** strs, int strsSize){
    if (strsSize==0)
        return "";
    if (strsSize==1)
        return strs[0];
    int minLength=200;
    int minIndex=-1;
    for(int i =0; i<strsSize; i++)
    {
        int Length = strlen(strs[i]);
        if (Length < minLength)
        {
            minLength = Length;
            minIndex = i;
        }
    }
    
   int i,k, count=0;
   for (i=0; i< minLength; i++)
   {
       for (k=0; k<strsSize; k++)
       {
           if (minIndex==k)
               continue;
           if (strs[k][i] != strs[minIndex][i])
               break;
       }
       if (k<strsSize)
            break;
       if (k==strsSize)
           count++;
   }
    char* retStr = malloc(sizeof(char)*(count+1));
    retStr[count]='\0';
    strncpy(retStr, strs[minIndex], count);
    
    return retStr;                                                     
}

感覺直接拿第一個下去比也可以吧?!(thinking 圖)
就是比的時候加上長度的檢查?!懶得寫, 先這樣吧XD (光速逃)

沒有留言:

張貼留言