JAVA编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2:
时间: 2023-09-12 09:07:07 浏览: 81
输入: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;
}
```
这个函数的基本思想是,我们首先假设第一个字符串是最长公共前缀,然后将其与接下来的字符串逐个比较,找出它们之间的公共前缀,并更新最长公共前缀。如果查找过程中出现空字符串或者不存在公共前缀,就直接返回空字符串。
相关问题
编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串“”
在编写一个函数来查找字符串数组中的最长公共前缀时,你可以采用以下步骤:
```python
def longest_common_prefix(strs):
if not strs: # 如果数组为空,直接返回空字符串
return ""
shortest_str = min(strs, key=len) # 找出最短的字符串作为基准
for i, char in enumerate(shortest_str): # 遍历最短字符串的每个字符
for other_str in strs:
if other_str[i] != char: # 如果当前字符在其他字符串中不同,则退出循环
return shortest_str[:i] # 返回已经检查过的公共部分
else:
continue # 如果所有字符串都匹配,继续下一位字符
return shortest_str # 如果遍历完都没有提前退出,说明所有字符串都有相同的前缀,返回整个最短字符串
# 示例
str_array = ["flower", "flow", "flight"]
result = longest_common_prefix(str_array)
print(f"最长公共前缀是: {result}")
```
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串,用python写代码
你可以编写一个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 string in strs:
if string[i] != char: # 如果某个字符串在这个位置不等于最短字符串的字符,就退出循环
break
else: # 如果所有字符串都匹配到当前位置,说明这个字符是公共前缀的一部分,继续下一位
continue
# 如果有字符串在当前位置不匹配,返回已找到的部分作为公共前缀
return shortest_str[:i]
# 如果遍历完最短字符串都没有找到不匹配的,整个字符串就是最长公共前缀
return shortest_str
# 示例用法
strings = ["flower", "flow", "flight"]
print(longest_common_prefix(strings)) # 输出: "fl"
```
这个函数首先找到数组中最短的字符串,然后逐字符比较每个字符串的对应位置。如果所有字符串都在当前位上有相同的字符,就更新公共前缀;如果有任何一个字符串在该位置不同,就停止比较并返回已经找到的公共前缀。如果遍历完整个最短字符串都没找到不匹配的,那么整个最短字符串就是最长公共前缀。
阅读全文