执行时间8ms,内存损耗8.9m
# include <vector>
#include <string>
class Solution {
public:
std::string longestCommonPrefix(std::vector<std::string>& strs) {
int length = strs.size();
std::string s = "";
// 考虑特殊情况
if (strs.empty()) // 当输入为空时
return s;
if (length < 2) // 当输入仅一个字符串时,这里主要考虑到后面判断 j < length - 1无法包含输入长度为1的情况。
return strs[0];
else // 其他情况,依次遍历比较
{
for (int i = 0; i < strs[1].size(); ++i) // 先保证每一次比较的位相同
{
for (int j = 0; j < length - 1; ++j) // 再保证每一次比较时对所有的字符串都比较了
{
if (strs[j][i] != strs[j + 1][i]) // 如果出现了不成立的,函数返回
{
return s;
}
else if (j == length - 2) // 否则记录此时的字符
s += strs[j][i];
}
}
}
return s;
}
};
本文介绍了一种使用C++实现的字符串前缀匹配算法,该算法通过遍历字符串数组来查找最长的公共前缀。执行效率高,内存消耗低,适用于多种字符串处理场景。

被折叠的 条评论
为什么被折叠?



