Blog.

最长公共前缀

Cover Image for 最长公共前缀
Bernie
Bernie

最长公共前缀

leetcode 链接

思路:

  1. 用 first 指向 strs 的第一个元素
  2. 用 len1 指向 first 的长度
  3. 用 i 遍历 first 的每一个字符
  4. 用 letter 指向 first 的第 i 个字符
  5. 用 j 遍历 strs 的每一个元素
  6. 用 current 指向 strs 的第 j 个元素
  7. 如果 i 大于等于 current 的长度或者 letter 不等于 current 的第 i 个字符, 则返回 first 的前 i 个字符
  8. 返回 first

typescript 解法

function longestCommonPrefix(strs: string[]): string {
  if (strs.length === 1) {
    return strs[0];
  }
  const first = strs[0];
  const len1 = first.length;

  for (let i = 0; i < len1; i++) {
    const letter = first.charAt(i);
    for (let j = 0; j < strs.length; j++) {
      const current = strs[j];
      if (i >= current.length || letter != current.charAt(i)) {
        return first.substring(0, i);
      }
    }
  }
  return first;
}

go 解法

func longestCommonPrefix(strs []string) string {
    if len(strs) == 1 {
        return strs[0]
    }
    first := strs[0]
    len1 := len(first)
    for i := 0; i < len1; i ++ {
        letter := string(first[i])
        for j := 1; j < len(strs); j ++ {
            current := strs[j]
            if i >= len(current) || letter != string(current[i]) {
                return first[:i]
            }
        }
    }
    return first
}