Description
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string "".
Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
AC代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res = "";
if((strs.size() == 0) || (strs[0].size() == 0)){
return res;
}
if(strs.size() == 1) {
return strs[0];
}
string temp = strs[0];
for(int i=0; i<strs[0].size(); i++) {
for(int j=1; j<strs.size(); j++) {
if(strs[j][i] != strs[0][i]) {
return res;
}
}
res += strs[0][i];
}
return res;
}
};
测试代码
int main() {
Solution s;
vector<string> a1{"flower", "flow", "flight"};
vector<string> a2{"dog", "racecar", "car"};
cout << "prefix of a1 is " << s.longestCommonPrefix(a1) << endl;
cout << "prefix of a2 is " << s.longestCommonPrefix(a2) << endl;
}
总结
这一题比较简单,做完边界条件的判定之后,两层for循环,一旦条件不满足,立马return。
网友评论