编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
char * longestCommonPrefix(char ** strs, int strsSize){
//字符串为空
if(strsSize == 0){
return "";
}
//字符串个数为1
if(strsSize == 1){
return strs[0];
}
char* operatStr = strs[0];
char* result = "";
for(int i = 1;i < strsSize;i++){
char *p = operatStr;
char *temp = strs[i];
while(*p != '\0' && *temp != '\0'){
if(*p != *temp){
*p = '\0';
break;
}
p++;
temp++;
}
//如果temp可以遍历完,说明strs[i]就是最长公共前缀
if(*temp == '\0'){
operatStr = strs[i];
}
}
return operatStr;
}
欢迎读者提出问题和更优解法,有问题欢迎咨询,一起提高,看到一定回复。