编写一个函数来查找数组中的最长公共前缀
时间: 2024-12-28 07:34:03 浏览: 7
编写一个函数来查找数组中的最长公共前缀通常涉及到字符串处理。假设我们有一个包含多个字符串的数组,我们的目标是找到所有字符串共有的最短初始部分。这个功能可以用以下Python代码实现:
```python
def longest_common_prefix(strs):
if not strs: # 如果数组为空,返回空字符串
return ""
shortest_str = min(strs, key=len) # 找出最短的字符串作为基准
for i in range(len(shortest_str)):
for other_str in strs:
if other_str[i] != shortest_str[i]: # 遇到第一个不匹配字符就退出循环
break
else:
continue # 如果所有字符串都匹配,继续比较下一个位置
return shortest_str[:i] # 返回已匹配的部分
# 示例
strings = ["flower", "flow", "flight"]
print(longest_common_prefix(strings)) # 输出: "fl"
相关问题
编写一个函数来查找字符串数组中的最长公共前缀c语言
char* longestCommonPrefix(char** strs, int strsSize) {
if (strsSize == 0) { // 如果字符串数组为空,则返回空字符串
return "";
}
int len = strlen(strs[0]); // 获取第一个字符串的长度
for (int i = 0; i < len; i++) {
char ch = strs[0][i]; // 获取第一个字符串的第i个字符
for (int j = 1; j < strsSize; j++) { // 遍历其它字符串
if (i >= strlen(strs[j]) || strs[j][i] != ch) { // 如果其它字符串长度小于i或者第i个字符不同
strs[0][i] = '\0'; // 则将第一个字符串的第i个字符置为'\0'
return strs[0]; // 返回当前前缀
}
}
}
return strs[0]; // 返回第一个字符串,即为最长公共前缀
}
编写一个函数来查找字符串数组中的最长公共前缀。
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
示例:
输入: ["flower","flow","flight"]
输出: "fl"
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
思路:
先将字符串数组按照字典序排序,然后比较第一个字符串和最后一个字符串的公共前缀即可。
代码实现:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return "";
sort(strs.begin(), strs.end());
string first = strs.front(), last = strs.back();
int i = ;
while(i < first.size() && first[i] == last[i]) i++;
return first.substr(, i);
}
};
阅读全文