14. Longest Common Prefix
题目描述
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.
所有的输入都是只包含小写字符
思路
简单的实现题,寻找最长的前缀,只要找到第一个不同的前缀即可,然后就输出前面所有的相同部分。
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len;
string result = "";
len = strs.size();
if (len == 0) {
return result;
} else if (len == 1) {
return strs[0];
} else {
bool p = true;
int l = 0;
while (p) {
char temp = strs[0][l];
if (temp != '\0')
for (int i = 1; i < len; i++) {
if (strs[i][l] != temp) {
p = false;
}
}
if (p) {
result.append(1,temp);
}
l++;
}
return result;
}
}
};
Runtime: 8 ms, faster than 31.90% of C++ online submissions for Longest Common Prefix.