题目:Write a function to find the longest common prefix string amongst an array of strings.
挺简单的,就是找到共同的最长前缀。我这个方法肯定浪费空间了,但是第一个想法就这么想的那就这么做了。其实两个for循环中外面的循环可以直接拿第一个元素的size来循环的。每次取这个前缀的大小多一。如果不是所有都成功那前缀就是前一个取得的值,直接结束返回就好了。
贴不好的代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0) return "";
vector<string> allpre;
string maxstring = "";
for(int i = 0; i < strs[0].size(); ++i){
allpre.push_back(strs[0].substr(0,i+1));
}
for(int i = 0; i < allpre.size(); ++i){
int flag = 0;
for(int j = 0; j < strs.size(); ++j){
if(allpre[i] != strs[j].substr(0,allpre[i].size())){
return maxstring;
}
}
if(flag == 0){
maxstring = allpre[i];
}
}
return maxstring;
}
};
有时候 不一定要看完直接就写。想清楚再写能写的更好的。