力扣链接:14. 最长公共前缀,难度等级:简单。
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: strs = ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: strs = ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
约束:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
如果非空,则仅由小写英文字母组成
复杂度
时间复杂度
O(M * N)
空间复杂度
O(1)
Ruby #
# @param {String[]} strs
# @return {String}
def longest_common_prefix(strs)
result = ''
(0...strs[0].size).each do |i|
char = strs[0][i]
strs[1..].each do |str|
if str[i] != char
return result
end
end
result << char
end
result
end
Python #
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
result = ''
for i in range(len(strs[0])):
char = strs[0][i]
for string in strs[1:]:
if i >= len(string) or string[i] != char:
return result
result += char
return result
Java #
class Solution {
public String longestCommonPrefix(String[] strs) {
var result = "";
for (var i = 0; i < strs[0].length(); i++) {
var c = strs[0].charAt(i);
for (var j = 1; j < strs.length; j++) {
if (i >= strs[j].length() || strs[j].charAt(i) != c) {
return result;
}
}
result += c;
}
return result;
}
}