leetcode Longest Common Prefix不同字串的公共字首
阿新 • • 發佈:2019-02-16
思路:
當任意2個字串的最長公共字首,其長度肯定不會超過最短的字串的長度,設最短的字串長度為n,那麼只要比較這2個字串的前n個字元即可。
如此得出這2個字串的最長公共字首prefix後,再拿prefix作為新的字串和陣列中的下一個字串比較,方法同上。需要注意的是,如果陣列中的某個字串長度為0,或者求得的當前最長公共字首的長度為0,就直接返回空字串。
class Solution { public: int get1min(int x,int y){ if(x>y)return y; return x;} string longestCommonPrefix(vector<string>& strs) { if(strs.empty())return ""; string ss=strs[0]; int i,j; for(i=1;i<strs.size();i++) {if(ss.size()==0||strs[i].size()==0)return ""; int l=get1min(ss.size(),strs[i].size());//兩個字串比較 for(j=0;j<l;j++) if(ss[j]!=strs[i][j])break; ss=ss.substr(0,j);} return ss;} };