[算法与数据结构笔记]LeetCode之14-最长公共前缀

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BaiHuaXiu123/article/details/88258067

题目

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

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

示例 1:

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

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

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

思路

依次遍历字符串

Go语言实现

func longestCommonPrefix(strs []string) string {
	if len(strs) == 0 {
		return ""
	}
	if len(strs) == 1 {
		return strs[0]
	}
	temp := strs[0]
	res := ""
	for i:=0;i<len(temp);i++ {
		for j:=1;j<len(strs);j++ {
			if i == len(strs[j]) || temp[i] != strs[j][i] {
				return  res
			}

		}
		res += string(temp[i]);
	}
	return res
}

JavaScript语言实现

var longestCommonPrefix = function (strs) {
  if (strs.length == 0) return "";
  if (strs.length == 1) return strs[0];
  var temp = strs[0];
  var res = "";
  for (let i = 0; i < temp.length; i++) {
    for (let j = 1; j < strs.length; j++) {
      if (temp[i] !== strs[j][i]) {
        return res;
      }
    }
    res += temp[i];
  }
  return res
}

Python语言实现

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if len(strs) == 0:
            return ""
        if len(strs) == 1:
            return strs[0]
        tmin = min(strs)
        tmax = max(strs)
        for i,c in enumerate(tmin):
            if c != tmax[i]:
                return tmin[:i]

        return tmin

Rust语言实现


结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BaiHuaXiu123/article/details/88258067