美文网首页
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