标签:
得到一个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的情况。
积累经验,学会保持代码完备性。
OJ练习7——T14 Longest Common Prefix
标签:
原文地址:http://www.cnblogs.com/ketchups-notes/p/4401622.html