题解 | #最长公共前缀#
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param strs string字符串一维数组
* @param strsLen int strs数组长度
* @return string字符串
*///整体思路是从第一列开始比较,(要考虑空数组),一列比完要换下以列
char* longestCommonPrefix(char** strs, int strsLen ) {
// write code here
if(strsLen==0)
{
return strs;
}
int i=0,j=0;//初始化i,j
char flag=strs[0][i];//从第一行开始
while(flag)
{//对比其他行同一列字母是否相同
for(j=0;j<strsLen;j++)
{
if(strs[j][i]!=flag)//一旦有字符不同,就终止循环
{
break;
}
}
//如果j小于字符串长度,则跳出while循环
if(j<strsLen)
{
break;
}//如果前面没有跳出循环,则++i,flag变为下一个字符串
flag=strs[0][++i];
}
strs[0][i]='\0';
return strs[0];
}
