查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ""
。
例如:
输入:strs = ["hello world","hello qq","hel weixin hello"] 输出:"hello"
输入:strs = ["cat","people","elephant"] 输出:"" 字符串中不存在公共前缀
思路:先判断是否为空字符串,若为空字符串,则返回' ',纵向遍历字符串数组,用当前字符的值与第一行字符的值比较,若不相等,用'\0'替换,'\0'为字符串的结束标志,代表字符串的结尾,替换后,输出的值即为最长公共前缀。
代码实现
char * longestCommonPrefix(char ** strs, int strsSize){
if(strsSize == 0) return ""; //如果字符串为空,返回'0'
for(int i=0; i < strlen(*strs); i++){ //纵向遍历字符串数组
for(int j=0; j < strsSize; j++){
if(strs[j][i] != strs[0][i]){ //与第一个字符串同列字符不相同
strs[0][i] = '\0'; //将第一个字符串从该列结束 // '\0'为字符串的结束标志
return *strs; //返回公共前缀
}
}
}
return *strs; //若全部符合,返回第一行字符串
}