最长公共前缀

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

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

示例 1:

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

示例 2:

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

所有输入只包含小写字母 a-z 。

思路

先判断出长度最小的字符串,然后按该字符串的第一位去比较其他字符串的第一位,如果相等,比较下一位,以此类推

class Solution {
    public String longestCommonPrefix(String[] strs) {
        
        int t=0;
        
        if(strs.length==0){
           
            return "";
        }
        
        if(strs.length==1){
            return strs[0];
        }
        
        int temp=strs[0].length();
        for(int i=1;istrs[i].length()){
                temp=strs[i].length();
            }
        }
       
        for(int i=0;i
class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs==null||strs.length==0){
            return "";
        }
        
        String pre=strs[0];
        int i=1;
        while(i
char* longestCommonPrefix(char** strs, int strsSize) {
    int len = 0,i,j;
    
    
    if(strsSize == 0)
    {
        return "";
    }
    
    if(strsSize == 1)
    {
        return strs[0];
    }
    
    len = strlen(strs[0]);
    
    for(i = 0;i < strsSize; i++)
    {
        if(strlen(strs[i]) < len)
        {
            len = strlen(strs[i]);
        }
    }
    
    char *result= (char*)calloc(len,sizeof(char*));

    for(j = 0 ;j < len ; j++)
    {
        for( i = 0 ;i < strsSize ; i++ )
        {
           
            if(strs[0][j] != strs[i][j])
            {
                return strncpy(result,strs[0],j);
            }
        }
    }
    
    
    if(j==0&&i==0)
    {return "";}
    else
    {return strncpy(result,strs[0],len);}
    
}

你可能感兴趣的:(最长公共前缀)