美文网首页程序员读书悦读
LeetCode-Algorithms-14.最长公共前缀

LeetCode-Algorithms-14.最长公共前缀

作者: lwyingyyy | 来源:发表于2019-05-22 23:11 被阅读4次

1. 题目描述

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

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

示例 1:   
            输入: ["flower","flow","flight"]
            输出: "fl"
示例 2:   
            输入: ["dog","racecar","car"]
            输出: ""
解释: 输入不存在公共前缀。
说明:所有输入只包含小写字母 a-z 。

2. 提交记录

14.最长公共前缀.png

3. 算法思想

当字符串的长度 strsSize 为 0 时,返回空串;
当字符串的长度 strsSize 为 1 时,返回该字符串;
当字符串的长度 strsSize 大于1时,比较第一和第二个字符串的长度,取较小的一个作为循环次数。如果字符串char ** strs当中有空串,直接返回空串 “” 不再进行比较查找。

4. 代码实现


    char * longestCommonPrefix(char ** strs, int strsSize){
        char * str = (char *)malloc(128 * sizeof(char));  //用来存储公共前缀
        memset(str, 0, 128);
    
        if (strsSize == 0 )
        {
            return "";
        }
        strcpy(str, strs[0]);
        
        if(strsSize == 1){
            return str;
        }
           
        int len = strlen(str);      //用来计算公共前缀的长度
        
        if(len > strlen(strs[1])){
            len = strlen(strs[1]);
        }
        for (int i = 1; i < strsSize; i++)
        {
            if(strlen(strs[i]) == 0){
                return "";
            }
            char * currentStr = strs[i];
            int j;
            for (j = 0; j < len; j++)
            {
                if (str[j] != currentStr[j])
                {
                    break;
                }
            }
            len = j;
            str[j] = '\0';
        }
        return str;     
    }


相关文章

  • LeetCode-Algorithms-14.最长公共前缀

    1. 题目描述 2. 提交记录 3. 算法思想 当字符串的长度 strsSize 为 0 时,返回空串;当字符串的...

  • LeetCode 每日一题 [19] 最长公共前缀

    LeetCode 最长公共前缀 [简单] 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回...

  • 14. 最长公共前缀

    20180923-摘抄自14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,...

  • 5,最长公共前缀/数组与字符串

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1:...

  • Swift 最长公共前缀 - LeetCode

    题目: 最长公共前缀 描述: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""...

  • leetcode探索之旅(14)

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1: ...

  • Leetcode 14 最长公共前缀

    最长公共前缀 题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

  • LeetCodeSwift 14.Longest Common

    题目 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例...

  • [day4] [LeetCode] [title14,122]

    14.最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例 ...

  • 14. 最长公共前缀

    14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 说明...

网友评论

    本文标题:LeetCode-Algorithms-14.最长公共前缀

    本文链接:https://www.haomeiwen.com/subject/hotmzqtx.html