当前位置:   article > 正文

力扣14--最长公共前缀(C语言)_c语言求公共前缀

c语言求公共前缀

问题描述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

解题思路 

先求这几个字符串中最短的字符串的长度,然后使用双重for循环进行求相同的前缀,若无相同的前缀则在字符串开头加“\0”,退出内循环,若找到,则退出外循环。

代码呈现

  1. char* longestCommonPrefix(char** strs, int strsSize) {
  2. int len=0;
  3. int i,j;
  4. len=strlen(strs[0]);
  5. int flag=0;
  6. for(i=0;i<strsSize;i++)
  7. {
  8. if(strs[i]<len)
  9. len=strlen(strs[i]);
  10. }
  11. if(len==0)
  12. return "";
  13. for(int i=0;i<len;i++)
  14. {
  15. for(j=1;j<strsSize;j++)
  16. {
  17. if(strs[0][i]!=strs[j][i])
  18. {
  19. strs[0][i]= '\0' ;
  20. flag=1;
  21. break;
  22. }
  23. }
  24. if(flag==1)
  25. break;
  26. }
  27. return strs[0];
  28. }

时间复杂度O(n2)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/446090
推荐阅读
相关标签
  

闽ICP备14008679号