题目
描述
求一个字符串数组的最长公共前缀字符串。
思路
我记得这个题是得用动态规划算法才能有比较优的解法,但貌似比较复杂,我暂时用朴素算法求解了。
class Solution { public: string longestCommonPrefix(vector<string>& strs){ if(strs.size()==0) return string(); //find the shortest one size_t len = strs[0].size(); for(size_t i=1; i<strs.size(); i++){ if(strs[i].size() < len){ len = strs[i].size(); } } // find common prefix size_t n = 0; while(n < len){ size_t sz = strs.size(); char ch = strs[0][n]; size_t i; for(i=1; i<sz; i++){ if(strs[i][n] != ch){ break; } } if(i == sz){ // all equal n++; } else{ break; } } return string(strs[0].c_str(), n); } };