赞
踩
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成先求这几个字符串中最短的字符串的长度,然后使用双重for循环进行求相同的前缀,若无相同的前缀则在字符串开头加“\0”,退出内循环,若找到,则退出外循环。
- char* longestCommonPrefix(char** strs, int strsSize) {
- int len=0;
- int i,j;
- len=strlen(strs[0]);
- int flag=0;
- for(i=0;i<strsSize;i++)
- {
- if(strs[i]<len)
- len=strlen(strs[i]);
- }
- if(len==0)
- return "";
- for(int i=0;i<len;i++)
- {
- for(j=1;j<strsSize;j++)
- {
- if(strs[0][i]!=strs[j][i])
- {
- strs[0][i]= '\0' ;
- flag=1;
- break;
- }
-
- }
- if(flag==1)
- break;
- }
- return strs[0];
- }
时间复杂度O(n2)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。