Skip to content

Instantly share code, notes, and snippets.

@GZShi
Created July 1, 2018 03:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GZShi/13f43acda6bf764149f07f3cd45fd83a to your computer and use it in GitHub Desktop.
Save GZShi/13f43acda6bf764149f07f3cd45fd83a to your computer and use it in GitHub Desktop.
// url: https://leetcode-cn.com/problems/longest-common-prefix/description/
// date: 2018-07-01
// author: gzshi
/*
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
*/
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) return "";
string& firstStr = strs[0];
// 遍历 firstStr 的每一个字节
for (int i = 0; i < firstStr.size(); ++i) {
char ch = firstStr[i];
// 比较 strs 所有字符串的第 i 个字节,如果有不相等的,最长公共子串匹配结束
for (int j = 1; j < strs.size(); ++j) {
if (ch != strs[j][i]) {
return firstStr.substr(0, i);
}
}
}
return firstStr;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment