题目分析
给我们一个vector,里面的元素全是string类型,让我们找到最长的公共前缀。
解题思路
首先我们来分析一下题目,要找到最长的公共前缀的意思,就是说,这个前缀,要在vector中的所有string串都要存在。
那么我们很容易想到先进行排序,答案最长也就是所有string串中最短的那个长度。
排序后,我们以最短的string串(第一个string)作为基准,每一个字符进行其他剩余串相同位置的判断,如果出现不在其中一个string串的时候,代表我们已经找到了最长公共前缀了
例子
举一个例子帮助理解算法。
vector中的string分别为abc、abdc、abce
首先进行排序后
我们可以得到为
abc、abce、abdc
判断第一个字符,都为a相同
进行下一步判断,全为b相同
进行下一个字符判断,c与d不同
则最终我们的最长公共前缀为ab
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
//先挑选最短的,然后按照这个,从后往前