您的位置:首页 > 编程语言

14. Longest Common Prefix 简单的题,但是有精简代码的小技巧

2017-01-04 12:03 471 查看
Write a function to find the longest common prefix string amongst an array of strings.class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res;
int h = strs.size();
if(h == 0) return res;
if(h == 1) return strs[0];
int i;
for(i = 0; i < strs[0].size() ; i++){
char first;
bool flag = false;
first = strs[0][i];//(i > 0 && strs[i][idx] != strs[i-1][idx])如果这样写 这一句可以省略
for(int r = 1; r < h; r++){
if(i >= strs[0].size() || strs[r][i] != first){//或的妙用, 判断前面为真的时候后面直接略过
flag = true;
break;
}
}
if(flag) break;
else res.push_back(strs[0][i]);
}

return res;
}
};精简后的代码竟然可以这么短小精悍!如下:

class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string prefix = "";
for(int idx=0; strs.size()>0; prefix+=strs[0][idx], idx++)
for(int i=0; i<strs.size(); i++)
if(idx >= strs[i].size() ||(i > 0 && strs[i][idx] != strs[i-1][idx]))
return prefix;
return prefix;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: