leetcode-最长公共前缀
Posted cw_T
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-最长公共前缀相关的知识,希望对你有一定的参考价值。
最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
题目分析
题目要找出最长的公共前缀,最先想到的应该是纵向扫描,该方法的思路是比较每一列的字符是否相同,相同则比较下一列,直到这列的字符不同为止。最后返回最长的前缀。
时间复杂度
- 时间复杂度:O(mn),其中 m 是字符串数组中的字符串的平均长度,n 是字符串的数量。最坏情况下,字符串数组中的每个字符串的每个字符都会被比较一次。
- 空间复杂度:O(1)。使用的额外空间复杂度为常数。
算法部分代码展示
char * longestCommonPrefix(char ** strs, int strsSize)
{
if(strsSize == 0) return "";
//以第一个元素的列作为外循环
for(int i = 0; i < strlen(strs[0]); i++ ){
//比较每一行上该列的字符是否相等,不相等则返回之前保存的值
for(int j = 1; j < strsSize; j++ ){
if(strs[0][i] != strs[j][i]){
strs[0][i] = \'\\0\';
return strs[0];
}
}
}
return strs[0];
}
以上是关于leetcode-最长公共前缀的主要内容,如果未能解决你的问题,请参考以下文章