编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl" 示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-common-prefix
思路:如果string数组为空,那么return “”,否则,让结果字符串res初始为strs[0],即第一个string,GetCommon方法是返回两个字符串的公共前缀,先让res和第二个字符串比,得到的公共前缀再和后面的比,最后得到的结果就是所有string的公共前缀。
class Solution { public: string longestCommonPrefix(vector<string>& strs) { if(strs.size()==0){ return ""; } string res = strs[0]; for(int i = 1;i < strs.size();i++){ res = GetCommon(res,strs[i]); } return res; } string GetCommon(string s,string s1){ string res; int len = 0; for(int i = 0;i<s.size()&&i<s1.size();i++){ if(s[i]==s1[i]){ len++; } else{ break; } } res = s.substr(0,len); return res; } };
