LeetCode 014 Longest Common Prefix

来源:互联网 发布:淘宝 排名 编辑:程序博客网 时间:2024/05/22 05:01
题目


Write a function to find the longest common prefix string amongst an array of strings.


思路


1 思路很简单,从数组中找出最小字符串,然后根据最小字符串来匹配全部字符串的前缀。

2 如果需要优化,可以在遍历最小字符串的前缀的时候使用半分法。

3 难点在于,字符串的length和数组的length混在一起,数组下标[]和方法()混在一起,容易写错。


public class Solution {    public String longestCommonPrefix(String[] strs) {        if(strs.length==0){            return "";        }                int num = strs.length;        int shortestlength = strs[0].length();        int shortindex = 0;        for(int i=0;i<num;i++){            int ln = strs[i].length();            if(ln<shortestlength){                shortestlength= ln;                shortindex = i;            }        }                String shortestString = strs[shortindex];        while(shortestlength>0){            String sub = shortestString.substring(0,shortestlength);            int i;            for(i=0;i<num;i++){                if(!strs[i].substring(0,shortestlength).equals(sub)){                    break;                }                            }            if(i==num){                break;            }            else{                shortestlength--;            }        }        return shortestString.substring(0,shortestlength);    }}

15.3.17
public class Solution {    public String longestCommonPrefix(String[] strs) {        if(strs == null  ){            return null;        }        int n = strs.length;        String minStr = "";        int minLength = Integer.MAX_VALUE;                for(int i=0;i<n;i++){            if(strs[i].length()<minLength){                minLength = strs[i].length();                minStr = strs[i];            }        }        for(int i=0;i<minStr.length();i++){            char cur = minStr.charAt(i);            for(int j=0;j<n;j++){                if(strs[j].charAt(i)!=cur){                    return minStr.substring(0,i);                }            }        }        return minStr;    }}

注意JAVA的substring(startIndex,endIndex)和 substring(startindex)


0 0
原创粉丝点击