题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
1 2
| 输入:strs = ["flower","flow","flight"] 输出:"fl"
|
示例 2:
1 2 3
| 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
|
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
题解
这一题其实并不难,我的想法是:先把第一个字符串默认为最长前缀,然后从第二个开始比较,依次比较每个字母,出现第一个不相同的字母的时候就停止比较,将字符串进行截取(只保留相同的部分)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length == 0) return ""; String ans = strs[0]; for (int i = 1; i < strs.length; i++) { int j = 0; for (; j < ans.length() && j < strs[i].length(); j++) { if (ans.charAt(j) != strs[i].charAt(j)) break; } ans = ans.substring(0, j); if (ans.equals("")) return ans; } return ans; } }
|