题目是:编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
我的解决思路是
先用变量smix取得最短字符串长度
双重循环 不断将字符压入到一个空字符串中
现在报错:
Line 522: Char 69: runtime error: applying non-zero offset 18446744073709551615 to null pointer (basic_string.h)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:531:69
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string pub = "";
int size = strs.size();
int smix = 100;
for(int m = 0;m<size;m++){
if(smix>strs[m].size())
smix = strs[m].size();
}
int c = 0;
int i;
for(int t = 0;t<smix;t++){
for(i = 0;i<size-1;i++){
if(strs[i][t]==strs[i+1][t])
c++;
}
if(c==i-1)
pub.push_back(strs[0][t]);
else{
std::cout<<pub<<std::endl;
}
}
return 0;
}
};