编写一个函数来查找字符串数组中的最长公共前缀
时间: 2023-06-05 22:47:50 浏览: 227
```python
def longestCommonPrefix(strs):
if not strs:
return ""
if len(strs) == 1:
return strs[0]
strs.sort()
first = strs[0]
last = strs[-1]
for i, char in enumerate(first):
if char != last[i]:
return first[:i]
return first
```
这是一个查找字符串数组中最长公共前缀的函数。先判断字符串数组是否为空,如果为空则返回空字符串。如果只有一个字符串,则直接返回该字符串。将字符串数组按字典序排序,将第一个字符串和最后一个字符串取出来进行比较,找到最长公共前缀并返回。
相关问题
编写一个函数来查找字符串数组中的最长公共前缀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);
}
};
阅读全文