OJ练习7——T14 Longest Common Prefix
得到一个string序列的最长公共前缀。
【思路】
先求得最小string的长度,使得比较次数尽可能少。
对于要返回的prefix的每一位,从第一个string中取一个字符,拿来和其他string同样位置的字符比较;
如果不相同,则返回当前的prefix,否则添加到prefix后。
【注意】
读取第i个string的第j个字符:vec[i][j],或者*(vex[i].begin()+j)。明显前者更方便。
【my code】
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
string res="";
if(strs.empty())
return res;
int i, j, min=2147483647;
char c;
for(i=0; i<strs.size(); i++)
min=min>strs[i].size()?strs[i].size():min;
for(i=0; i<min; i++)
{
c=strs[0][i];
//cout<<c;
for(j=1; j<strs.size(); j++)
{
if(c!=strs[j][i])
return res;
}
res.push_back(c);
}
return res;
}
};
【总结】
刚开始没有strs是空串的情况处理,平台显示“runtime error”,last exacuted input:[]
可见刚开始即测试strs是empty的情况。
积累经验,学会保持代码完备性。
浙公网安备 33010602011771号