编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 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){
/*方法一:
将第一个字符串与第二个比较,将相同的字符保留下来,若遇到不同的字符直接将第一个字符串截断,所得即为一、二字符串的最长前缀;然后在拿第一个字符串和剩下的字符串依次比较
for(int i = 1; i < strsSize; i++){
int str_len = strlen(strs[i]);
for(int j = 0; j < str_len, strs[0][j]; j++){
if(strs[0][j]!= strs[i][j]){
strs[0][j] = '\0';
break;
}
}
}
return strs[0];
*/
//方法二:成列寻找最长公共前缀
int i = 0;
for( ; strs[0][i]; i++){
for(int j = 1; j < strsSize; j++){
if(strs[j][i] == '\0'){
strs[0][i] = '\0';
return strs[0];
}
if(strs[j][i] != strs[0][i]){
strs[0][i] = '\0';
return strs[0];
}
}
}
return strs[0];
}