常见算法面试题:最长公共前缀

《常见算法面试题:最长公共前缀》

思路:

  • 找出字符串数组中长度最小的字符串,此字符串用来当作标准对比的字符串。
  • 用两个循环匹配最长前缀,外循环,从i=0到最小字符串的长度
String standard=minStr.substring(0, i);

内循环从j=0到字符串数组长度,负责将字符串数组的每一个字符串从0截取到i长度与minStr对比,

if(strs[j].substring(0, i).equals(standard)

代码:

public class Solution {
    /** * @param strs: A list of strings * @return: The longest common prefix */
    public String longestCommonPrefix(String[] strs) {
        // write your code here
        if(strs.length==0){
            return "";
        }
        int min=Integer.MAX_VALUE;
        String minStr="";
        for(int i=0;i<strs.length;i++){
            if(min>strs[i].length()){
                minStr=strs[i];
                min=strs[i].length();
            }
        }
        if(min==0){
            return "";
        }
        for(int i=min;i>=0;i--){
            String standard=minStr.substring(0, i);
            int j=0;
            for(j=0;j<strs.length;j++){
                if(strs[j].substring(0, i).equals(standard)){
                    continue;
                }else{
                    break;
                }
            }
            if(j==strs.length){
                return standard;
            }
        }
        return "";

    }
}
    原文作者:Ma Lizhi
    原文地址: https://blog.csdn.net/qq_31279347/article/details/82557260
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞