用C语言编写。求最长公共前缀 查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
时间: 2024-04-29 16:25:47 浏览: 63
求解最长公共子序列(LCS)C语言
4星 · 用户满意度95%
可以使用水平扫描法,即先将第一个字符串作为最长公共前缀,然后依次比较后面的字符串,不断更新最长公共前缀。如果在比较过程中发现最长公共前缀已经为空字符串,则直接返回。
以下是用C语言实现的代码:
```
#include <stdio.h>
#include <string.h>
char *longestCommonPrefix(char **strs, int strsSize) {
if (strsSize == 0) return "";
char *prefix = strs[0];
for (int i = 1; i < strsSize; i++) {
int j = 0;
while (prefix[j] != '\0' && strs[i][j] != '\0' && prefix[j] == strs[i][j]) {
j++;
}
prefix[j] = '\0';
if (prefix[0] == '\0') return "";
}
return prefix;
}
int main() {
char *strs[] = {"flower", "flow", "flight"};
int strsSize = 3;
char *prefix = longestCommonPrefix(strs, strsSize);
printf("Longest common prefix: %s", prefix);
return 0;
}
```
输出结果为:
```
Longest common prefix: fl
```
希望能够帮到您!
阅读全文