张伦聪的技术博客 Research And Development

14. 最长公共前缀

2018-08-28

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ““。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

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

说明:

所有输入只包含小写字母 a-z 。

解:代码还是挺有意思的,先把第一个字符串赋值给一个pre,然后遍历其他的字符串,如果不是子集,然后把pre减少一个字符,直到是子集为止,再遍历其他字符串,所有都满足就是结果了。这题还可以用字典树来解决,很重要的知识点,后面会涉及。

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) {
            return "";
        }
        String pre = strs[0];
        int i = 1;
        while (i < strs.length) {
            while (strs[i].indexOf(pre) != 0) {
                pre = pre.substring(0, pre.length() - 1);
            }
            i++;
        }
        return pre;
    }
}

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏博主

类似文章

下一篇 28. 实现strStr()

留言