报错原因:出现了空指针,在本次错误中是数组越界!
直接撸代码:
string longestCommonPrefix(vector<string>& strs)
{
string s = strs[0];
if (strs.empty())
return "";
.......
}
可以看到传入一个vector变量时,首先对其进行了取第一个值的操作,然而该容器可能是空的,所以会出现 null pointer的情况!!!写代码一定要有逻辑啊,用vs debug才找到错误。。。
下面是更正后的完整代码。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (!strs.size())
{
return "";
}
string s=strs[0];
for(int i=1;i<strs.size();i++)
{
int length = min(strs[i].size(),s.size());
int j=0;
for(;j<length;j++)
{
if(s[j]!=strs[i][j])
{
break;
}
}
s=s.substr(0,j);
}
return s;
}
};