[题目]
Write a function to find the longest common prefix string amongst an array of strings.
[中文翻译]
写一个函数查找字符串数组的最长公共前缀。
[解题思路]
枚举最长公共子串的长度。对于当前枚举到的位置,判断字符串数组当前位的字符是否都相同,如果不是都相同,则已获得了最长公共子串的长度,否则,继续枚举。
[C++代码]
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int minLen;
string res = "";
if (strs.size() > 0) {
minLen = strs.at(0).size();
}
else
minLen = 0;
for (int i = 1; i < strs.size(); i++)
if (minLen > strs.at(i).size())
minLen = strs.at(i).size();
for (int i = 0; i < minLen; i++) {
bool flag = true;
char ch = strs.at(0).at(i);
for (int j = 1; j < strs.size(); j++)
if (strs.at(j).at(i) != ch) {
flag = false;
break;
}
if (flag)
res += ch;
else
break;
}
return res;
}
};