Longest Common Prefix
主要是效率问题,对于空串要及早退出降低时间。
还有字符串问题:
C++中string不是以‘\0’结束的,C中是的。
如果对一个空串赋值‘\0’,此时串的size()为1。
1 class Solution { 2 3 public: 4 string longestCommonPrefix(vector<string>& strs) { 5 int len=0,i=0; 6 string pre=""; 7 if(strs.size()==0) return pre; 8 else if(strs.size()<2) return strs[0]; 9 while(i<strs[0].size()&&i<strs[1].size()&&strs[0].at(i)==strs[1].at(i)) 10 { 11 pre=pre+strs[0].at(i); 12 i++; 13 } 14 len=i; 15 if(len==0) return pre; 16 for(int j=2;j<strs.size();j++) 17 { 18 i=0; 19 if(strs[j].size()<len) len=strs[j].size(); 20 while(i<len && strs[j].at(i)==pre[i]) 21 i++; 22 if(i<len) len=i; 23 if(len==0) return ""; 24 } 25 return pre.substr(0,len); 26 } 27 }; 28