题解 | #最长公共前缀#

最长公共前缀

https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param strs string字符串一维数组 
     * @return string字符串
     */
    public  String longestCommonPrefix (String[] strs) {
        // write code here
        if(strs.length==0 || strs==null){
            return "";
        }
        String pubStr = strs[0];
        for (int i = 0; i < strs.length; i++) {
            //题目的意思查找所有字符串中最大的字符,所以先随便找两个对比,返回这两个匹配的地方与第三个对比,再根据与第三个最大的公共地方与第四个匹配,以此类推
            pubStr = matchPrefix(pubStr, strs[i]);
        }
        return pubStr;
    }

    private   String matchPrefix(String fix,String str){
        //fix是前面对比的最大匹配字符串,所以后续的对比都不可能长度会超过fix
        int i = 0;
        while (i< fix.length() && i< str.length() && fix.charAt(i) == str.charAt(i)){
            i++;
        }
        return fix.substring(0,i);

    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务