思路:直接明了。找出最短的字符串,然后跟第一个字符串比较,用比较得到的结果去跟第二个字符串比较。直到结束。时间复杂度O(mn),实际会好点
class Solution {
public:string longestCommonPrefix(vector<string>& strs) {
int nums=strs.size();
if(nums==0) return "";
if(nums==1) return strs[0];
//find min
int shortest_pos=0;
for(int i=1;i<nums;++i){
if(strs[i].size()<strs[shortest_pos].size()){
shortest_pos=i;
}
}
//process
string result=strs[shortest_pos];
for(int i=0;i<strs.size();++i){
if(shortest_pos==i) continue;
for(int j=0;j<result.size();++j){
if(result[j]!=strs[i][j]){
result=result.substr(0,j);
break;
}
}
}
//end
return result;
}
};