如何设计一个函数来寻找并返回数组中所有字符串的最长公共前缀?用C++
时间: 2024-12-28 08:33:58 浏览: 9
为了设计一个C++函数来找出数组中所有字符串的最长公共前缀,你可以创建一个名为`findLongestCommonPrefix`的函数。这个函数会接受一个字符串数组作为输入,并通过迭代遍历数组,比较每个字符串的起始字符,找到它们的公共部分。以下是函数的一个示例实现:
```cpp
#include <vector>
#include <string>
std::string findLongestCommonPrefix(std::vector<std::string>& strs) {
if (strs.empty()) {
return "";
}
std::string prefix = strs[0]; // 从第一个字符串开始
for (size_t i = 1; i < strs.size(); ++i) {
while (strs[i].find(prefix) != 0) { // 如果当前字符串不是前缀,回溯到最长公共部分
prefix.pop_back();
if (prefix.empty()) {
return ""; // 如果没有找到公共前缀,直接返回空字符串
}
}
}
return prefix;
}
```
在这个函数中,我们首先检查输入是否为空。然后初始化`prefix`为数组的第一个字符串。接下来,遍历数组,如果当前字符串不是`prefix`的前缀,就逐个移除`prefix`的最后一个字符,直到找到公共前缀或者`prefix`变为空。最后返回找到的最长公共前缀。
阅读全文