【LeetCode刷题】最长公共前缀


题目

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。

题目链接:最长公共前缀

示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

解题

一开始没有啥思路,感觉是动态规划题目,看题解也是一知半解,后来想到一个方法,将字符串数组排序,那么根据排序规则,只要将第一个元素和最后一个元素逐个字符比较就可以,直到出现不同的字符。

代码实现

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null) return "";

        Arrays.sort(strs);
        int i = 0;
        for(i = 0; i < strs[0].length();) {
            if(strs[0].charAt(i) == strs[strs.length-1].charAt(i))
                i++;
            else break;
        }
        return strs[0].substring(0, i);
    }
}

声明:迟於|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 【LeetCode刷题】最长公共前缀


栖迟於一丘