Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
找最长公共前缀
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
if(strs.size() == 0) return string("");
int strIdx = 0;
//choose the smallest string first
for(int i = 1; i < strs.size(); ++i)
if(strs[i].size() < strs[strIdx].size()) strIdx = i;
int commonLen = strs[strIdx].size();
for(int i = 0; i < strs.size(); ++i)
{
if(i == strIdx) continue;
int curLen = 0;
for(int j = 0; j < strs[i].size() && j < commonLen; ++j)
{
if(strs[strIdx][j] == strs[i][j]) curLen++;
else break;
}
commonLen = curLen;
}
return strs[strIdx].substr(0, commonLen);
}
};