# 题目描述

``输入：strs = ["flower","flow","flight"]``输出："fl"``

``输入：strs = ["dog","racecar","car"]输出：""``解释：输入不存在公共前缀。``

• `0 <= strs.length <= 200`
• `0 <= strs[i].length <= 200`
• `strs[i]` 仅由小写英文字母组成

# 朴素解法

``class Solution {public String longestCommonPrefix(String[] ss) {String ans = "";if (ss.length == 0) return ans;for (int i = 0; i < Integer.MAX_VALUE; i++) {String s = ss[0];if (i >= s.length()) return ans;char c = ss[0].charAt(i);for (String item : ss) {if (i >= item.length() || item.charAt(i) != c) return ans;}ans += String.valueOf(c);}return ans;}``}``

• 时间复杂度：对于 `n` 个字符串，都需要遍历到公共前缀长度 `m`。复杂度为 \$O(nm)\$
• 空间复杂度：需要存储公共前缀作为答案返回。复杂度为 \$O(m)\$

1 声望

0 粉丝

0 条评论

# 题目描述

``输入：strs = ["flower","flow","flight"]``输出："fl"``

``输入：strs = ["dog","racecar","car"]输出：""``解释：输入不存在公共前缀。``

• `0 <= strs.length <= 200`
• `0 <= strs[i].length <= 200`
• `strs[i]` 仅由小写英文字母组成

# 朴素解法

``class Solution {public String longestCommonPrefix(String[] ss) {String ans = "";if (ss.length == 0) return ans;for (int i = 0; i < Integer.MAX_VALUE; i++) {String s = ss[0];if (i >= s.length()) return ans;char c = ss[0].charAt(i);for (String item : ss) {if (i >= item.length() || item.charAt(i) != c) return ans;}ans += String.valueOf(c);}return ans;}``}``

• 时间复杂度：对于 `n` 个字符串，都需要遍历到公共前缀长度 `m`。复杂度为 \$O(nm)\$
• 空间复杂度：需要存储公共前缀作为答案返回。复杂度为 \$O(m)\$