编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty())
return "";
std::string result = "";
for (int i = 0; i < strs[0].length(); i++) {
char key = strs[0][i];
if(key == '\0')
return result;
for (int j = 1; j < strs.size(); j++) {
if(strs[j][i] != key){
return result;
}
}
result += key;
}
return result;
}
思路非常容易想到
提交时遇到
runtime error: applying non-zero offset 18446744073709551615 to null pointer
原因是:
if (strs.empty())
return NULL;