美文网首页
Leetcode 14 最长公共前缀

Leetcode 14 最长公共前缀

作者: hekirakuno | 来源:发表于2019-10-21 17:16 被阅读0次

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

示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: " "
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。

思路:因为是最长公共前缀,所以找到最短的那个字符串作为最长公共前缀的待定值,然后用别的字符串的同等长度前缀去对比它,如果,等于,换下一个比对,如果不等,那么切掉这个待定值尾部的一个字符,直到这个待定值为空字符串或者遍历字符串数组完成。

class Solution {
    public String longestCommonPrefix(String[] str) {
        int minSize = Integer.MAX_VALUE;
        int minIndex = 0;
        String ans = "";
        for(int i = 0;i<str.length;i++){
            if(str[i].length()<minSize){
                minSize = str[i].length();
                minIndex = i;
                ans = str[i];
            } 
        }
        for(int i = 0; i< str.length;i++){
            int temp = i;
            for(;;){
                if(str[temp].substring(0,ans.length()).equals(ans)){
                    break;
                }
                if(ans.length()>0){
                    ans = ans.substring(0,ans.length()-1);
                }else{
                    return ans;
                }
            }
        }
        return ans;
    }
}

相关文章

网友评论

      本文标题:Leetcode 14 最长公共前缀

      本文链接:https://www.haomeiwen.com/subject/neztvctx.html