前缀(技巧题)"/>
14. 最长公共前缀(技巧题)
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
思路
任取数组中的一个元素作为参照,这里取第一个元素 strs[0]
,定义一个指针 k
,代表 strs[0]
的前 k
项是最长公共前缀,然后从第二个元素开始遍历,逐个字符比较,不断修改 k
值,得到最终结果;
代码
class Solution {public String longestCommonPrefix(String[] strs) {if (strs.length == 0)return "";int k = strs[0].length();for (int i=1; i<strs.length; i++){int len = Math.min(k, strs[i].length());int j = 0;for (; j<len && strs[0].charAt(j) == strs[i].charAt(j); j++);k = j;}return strs[0].substring(0, k);}public static void main(String[] args) {Solution solution = new Solution();String[] a = {"dog","racecar","car"};System.out.println(solution.longestCommonPrefix(a));}
}
更多推荐
14. 最长公共前缀(技巧题)
发布评论