Write a function to find the longest common prefix string amongst an array of strings.
最长的common prefix肯定是随着比较的增加不断减少的,所有设max_common_length_possible, 每次比较最多不会超过这个数,比较完后再update此数值。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int size = strs.size();
if (size == 0)
return "";
else if (size == 1)
return strs[0];
int max_common_length_possible = strs[0].size();
for (int i = 0; i < size - 1 && max_common_length_possible != 0; ++i)
{
for (int j = 0; j < max_common_length_possible; ++j)
{
if (strs[i][j] != strs[i+1][j])
{
max_common_length_possible = j;
break;
}
}
}
return strs[0].substr(0, max_common_length_possible);
}
};