采用比较暴力的方法,按第一个字符串一个个增加 得到最大的前缀
注意空和最大字符串长度
C:
char* longestCommonPrefix(char** strs, int strsSize) {
int i = 0, j, k;
char current;
int first_len;
char str[10000] = {""};
char *p;
// printf("%s", str);
bool flag;
// memset(str, '\0', sizeof(str));
// str[0]=''
if(!strsSize)
return p;
first_len = strlen(strs[0]);
flag = true;
while(flag && first_len)
{
current = strs[0][i];
for(j=1; j<strsSize; j++)
{
if(strlen(strs[j])==i || strs[j][i]!=current)
{
flag = false;
break;
}
}
if(flag==false)
break;
// printf("%c", current);
str[i++] = current;
if(i==first_len)
break;
}
// printf("%s", str);
p = str;
return p;
}
python:
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
str = []
flag = True
i = 0
if len(strs) == 0:
str = ''.join(str)
return str
if len(strs) == 1:
str = strs[0]
return str;
if len(strs[0])==0:
flag = False
while(flag and i<len(strs[0])):
current = strs[0][i]
for j in range(1,len(strs)):
if(len(strs[j])==i or strs[j][i]!=current):
flag = False
break
if flag==False:
break
str.append(current)
i += 1
str = ''.join(str)
return str