大厂高频面试-05 最长公共前缀问题
描述:
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
举例:
输入: ["flower","flow","flight"]输出: "fl"
来源:LeetCode
题目难度:★★
题目分析:
我们先从最简单的情况分析这个问题。假设只有两个字符串,计算这两个字符串的最长公共前缀的方法是:将两个字符串从左向右一一比较,直到遇到不相同的字符为止,前面的部分就是它们的最长公共前缀。例如字符串1为”abcde”,字符串2为”abcab”,计算二者的最长公共前缀的过程如图(1)所示。
如果有三个字符串,要怎样得到它们的最长公共前缀呢?可以先计算第一个字符串和第二个字符串的最长公共前缀,再将得到的这个最长公共前缀作为一个新的字符串,计算它与第三个字符串的最长公共前缀,最终得到的这个公共前缀即为三个字符串的最长公共前缀。例如字符串1为”abcde”,字符串2为”abcab”,字符串3为”abefc”,计算这三个字符串的最长公共前缀的过程如图(2)所示。