14.最长公共前缀

题目描述

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

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

示例1:

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

示例2:

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

思路

1.暂时先取数组中的第一个字符串为最长前缀。
2.将数组中的其他元素与最长前缀相比较,然后动态截取最长前缀,若最长前缀的长度为0,则可以直接返回空字符串。

Java代码实现

   public String longestCommonPrefix(String[] strs) {
        if(strs.length == 0)
            return "";
        String temp = strs[0];

        for (int i = 1; i < strs.length; i++) {
            int j=0;
            for (;j<strs[i].length() && j<temp.length();j++){
                if(temp.charAt(j) != strs[i].charAt(j))
                    break;
            }
            temp = temp.substring(0,j);
            if("".equals(temp))
                return "";
        }
        return temp;
    }

Golang代码实现

func longestCommonPrefix(strs []string) string {
    if len(strs) < 1{
        return ""
    }

    res := strs[0]

    for i:=1; i<len(strs) && len(res) > 0; i++ {
        len1 := len(res)
        len2 := len(strs[i])

        cur := len1
        if len2 < len1 {
            cur = len2
        }

        j := 0
        for ;j<cur;j++ {
            if res[j] != strs[i][j]{
                break;                
            }
        }
        res = res[0:j]
    }

    return res
}
全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 00:50
点赞 评论 收藏
转发
看网上风评也太差了
投递万得信息等公司8个岗位 >
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务