啊~你問我為什麼要先找最小長度, 我不知道吶~哈哈哈~~(被毆飛)
直覺寫法:
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 (光速逃)
沒有留言:
張貼留言