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.
Note:
All given inputs are in lowercase letters a-z
.
分析
这道题目是个easy难度的题目。寻找字符串数组的共同前缀,容易想到遍历字符串数组,当一旦发现有字符不相同或者超过了某一个字符串的长度时,退出即可。
Code
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string commonPrefix;
if (strs.size() == 0)
return commonPrefix;
int index = 0;
while (index < strs[0].size())
{
char tmp = strs[0][index];
for(int i = 1; i < strs.size(); i ++)
{
if (strs[i].size() <= index)
return commonPrefix;
if (strs[i][index] != tmp)
return commonPrefix;
}
commonPrefix.push_back(tmp);
index ++;
}
return commonPrefix;
}
};
运行效率
Runtime: 8 ms, faster than 98.80% of C++ online submissions for Longest Common Prefix.
Memory Usage: 9.6 MB, less than 49.54% of C++ online submissions forLongest Common Prefix.