题目:
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。
示例1:
输入:strs = [“flower”,“flow”,“flight”] 输出:“fl”
示例2:
输入:strs = [“dog”,“racecar”,“car”] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200 0 <= strs[i].length <= 200 strs[i] 仅由小写英文字母组成
解题代码:
char * longestCommonPrefix(char ** strs, int strsSize){
if(strsSize == 0)
return "";
int minSize = strlen(strs[0]);
int count = 0;
for(int i = 1; i < strsSize; i++)
minSize = minSize < strlen(strs[i]) ? minSize : strlen(strs[i]);
if(minSize == 0)
return "";
for(int i = 0; i < minSize; i++){
char c = strs[0][i];
for(int j = 1; j < strsSize; j++){
if(strs[j][i] != c){
strs[0][i] ='\0';
return strs[0];
}else
count++;
}
}
if(count >= (strsSize-1) && strlen(strs[0]) > minSize)
strs[0][minSize] ='\0';
return strs[0];
}
小小问题不大不大, 越界之多可怕可怕
|