思路:水平横扫
#include
#include
char * longestCommonPrefix(char ** strs, int strsSize);
int main()
{
char ** str ;
char * temp ;
int i=0,k,len=0 ;
str =(char**)malloc(sizeof(char)*1000);
for(i=0;i<1000;i++)
str[i]=(char*)malloc(sizeof(char)*1000);
i=0;
while(scanf("%s",str[i])!=EOF)
{
i++;
}
/*
printf("%p %p\n",str[0],str[1]);
printf("%p %p\n",&str[0],&str[1]);*/
temp=longestCommonPrefix(str,i);
printf("%s",temp);
// temp = str[0];
// printf("%c",*(temp+2));// -->第一个数组的第一个元素
}
// 最长公共前缀
char * longestCommonPrefix(char ** strs, int strsSize){
int i,j;
if(strsSize==0) return "" ;
char * tmp = *(strs+0);
for(i=1;i
{
for(j=0;tmp[j]!='\0'&&strs[i][j]!='\0';j++)
{
if(tmp[j]!=strs[i][j])
{
break;
}
}
tmp[j]='\0';
if(tmp == NULL)
{
return "" ;
}
}
return tmp ;
}
附上JAVA 代码//感觉更加简单
package arrString;
public class ArrString {
public static void main(String[] args) {
// TODO Auto-generated method stub
String [] str = {"leet",
"leetcode",
"lee",
"leetcs"};
String prifix =str[0];
for(int i=1;i
{
System.out.println(str[i].indexOf(prifix));
while(str[i].indexOf(prifix)!=0)
{
prifix =prifix.substring(0, prifix.length()-1);
if(prifix.isEmpty()) break ;
}
}
System.out.println(prifix);
System.out.println(str.length);//3
System.out.println(str[0]);//leet
}
}
标签:tmp,前缀,prifix,int,C语言,char,temp,str,最长
来源: https://www.cnblogs.com/cocobear9/p/12669512.html