编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
C++
class Solution { public: string longestCommonPrefix(vector<string>& strs) { if (strs.empty()) return ""; string res = ""; for (int j = 0; j < strs[0].size(); ++j) { char c = strs[0][j]; for (int i = 1; i < strs.size(); ++i) { if (j >= strs[i].size() || strs[i][j] != c) { return res; } } res.push_back(c); } return res; } };
class Solution { public: string longestCommonPrefix(vector<string>& strs) { int n = strs.size(); if (strs.empty()) return ""; sort(strs.begin(), strs.end()); for (int i = 0; i < min(strs[0].size(), strs[n-1].size()); ++i){ if (strs[0][i] != strs[n-1][i]) return strs[0].substr(0,i); } return strs[0]; } };
参考来源https://www.cnblogs.com/grandyang/