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-最长公共前缀的主要内容,如果未能解决你的问题,请参考以下文章

leetcode14最长公共前缀

leetCode第14题——最长公共前缀

[leetcode 14] 最长公共前缀

LeetCode:最长公共前缀

LeetCode:最长公共前缀

#yyds干货盘点# leetcode算法题:最长公共前缀