Longest Common Prefix

来源:互联网 发布:知乎笔记本推荐 编辑:程序博客网 时间:2024/06/05 04:48

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


思路:

题目的要求是求字符串数组strs中所有字符串的最长公共前缀子串。

第一步,先把前缀子串pre 设为strs[0].

第二步,判断一个字符串中是否含有另一个字符串可以使用indexof()方法,它返回的是子串在主串中开始的下标。

如果下标为0说明,子串存在并且是前缀子串。如果返回的不是0,说明pre不是前缀子串,比如pre = "abcd",而主串

为"abefg",如果pre能缩短l两个长度就可以成为前缀子串。所以要对pre进行截取,每次缩短一个长度,直到indexof()方法

返回为0,此时的pre就是最长的前缀子串。

第三步,将pre与strs数组中的一个字符串比较还不够,需要与每个字符串都进行操作。并且需要每次更新pre。


public class LongestCommonPrefix {    public String longestCommonPrefix(String[] strs) {        if(strs == null || strs.length == 0)         return "";        String pre = strs[0];        for(int i=1; i<strs.length; i++) {        while(strs[i].indexOf(pre) != 0) {        pre = pre.substring(0, pre.length()-1);        }        i++;        }        return pre;    }}


原创粉丝点击