重点在于common prefix,如果字符串数组中没有共同前缀,返回的是空。
class Solution {
public:
size_t shorterStrSize(const string &s1, const string &s2) {
return (s1.size() < s2.size() ? s1.size() : s2.size());
}
void updatePrefix(string &prefix, string s) {
string temp;
if (prefix[0] != s[0]) { prefix = ""; }
size_t size = shorterStrSize(prefix, s);
for (size_t i = 0; i < size; ++i) {
if (prefix[i] == s[i]) { temp += prefix[i]; }
else { break; }
}
prefix = temp;
}
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty()) {return "";}
string prefix = strs[0];
for (auto i : strs) {
updatePrefix(prefix, i);
}
return prefix;
}
};