題目: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;
}
};
有時候 不一定要看完直接就寫。想清楚再寫能寫的更好的。