标签(空格分隔): leetcode 简单编程
Longest Common Prefix:
题目描述
Write a function to find the longest common prefix string amongst an array of strings.
题目解答
(一)
拿出第一个字符串,从其第0个位置开始,看能和其余的字符串均连续匹配的字符有几个:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty()) {
return "";
}
string& fstStr = strs[0];
string::size_type i = 0;
for (; i < fstStr.size(); ++i) {
bool isBreak = false;
for (vector<string>::size_type j = 1; j < strs.size(); ++j) {
if (strs[j].size() <= i || strs[j][i] != fstStr[i]) {
isBreak = true;
break;
}
}
if (isBreak) {
break;
}
}
return fstStr.substr(0, i);
}
};
(二)
循环嵌套时使用goto直接跳出
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty()) {
return "";
}
string& fstStr = strs[0];
string::size_type i = 0;
for (; i < fstStr.size(); ++i) {
for (vector<string>::size_type j = 1; j < strs.size(); ++j) {
if (strs[j].size() <= i || strs[j][i] != fstStr[i]) {
goto RetLabel;
}
}
}
RetLabel:
return fstStr.substr(0, i);
}
};