JAVA编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2:
时间: 2023-09-12 22:07:07 浏览: 73
输入:strs = ["dog","racecar","car"] 输出:""
我可以回答这个问题。以下是一个JAVA函数来查找字符串数组中的最长公共前缀:
```
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
String prefix = strs[0];
for (int i = 1; i < strs.length; i++) {
while (strs[i].indexOf(prefix) != 0) {
prefix = prefix.substring(0, prefix.length() - 1);
}
}
return prefix;
}
```
这个函数的基本思想是,我们首先假设第一个字符串是最长公共前缀,然后将其与接下来的字符串逐个比较,找出它们之间的公共前缀,并更新最长公共前缀。如果查找过程中出现空字符串或者不存在公共前缀,就直接返回空字符串。
相关问题
编写一个函数来查找字符串数组中的最长公共前缀。
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
示例:
输入: ["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);
}
};
代码 测试用例 测试用例 测试结果 14. 最长公共前缀 已解答 简单 相关标签 相关企业 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
在计算机编程中,"测试用例"是用来验证程序功能是否符合预期的一种数据输入。对于算法或函数的设计,编写测试用例是非常重要的一步,因为它可以帮助开发者确定代码是否能够准确处理各种边界情况、正常情况以及异常情况。
关于题目提到的 "最长公共前缀" 的编程问题,这是一个经典的字符串处理问题,需要设计一个函数来找出给定字符串数组中所有字符串共享的最短公共前缀。例如,如果你有字符串数组 `["flower", "flow", "flight"]`,理想的结果应该是 `"fl"`,因为这是所有单词共同开始的部分。
下面是Python的一个示例实现:
```python
def longest_common_prefix(strs):
if not strs: # 如果数组为空,则无公共前缀
return ""
shortest_str = min(strs, key=len) # 找到最短的字符串作为基准
for i in range(len(shortest_str)):
char = shortest_str[i]
for other in strs:
if other[i] != char:
return shortest_str[:i] # 如果找到不一样的字符,返回当前已匹配部分
return shortest_str # 如果所有字符串都完全匹配,返回最短的那个
# 测试用例
test_cases = ["flower", "flow", "flight"]
print(longest_common_prefix(test_cases)) # 输出: fl
阅读全文