【LeetCode】最长相同前缀

来源:互联网 发布:java线程教程 编辑:程序博客网 时间:2024/06/02 19:02

14. Longest Common Prefix

题目:找到字符串数组的最长相同前缀

思路:先计算出整个数组的最短字符串长度,按每个字符遍历,看是否相同,不同时返回。这里也可以将计算最短字符串长度放到遍历中做,但是需要判断一下长度。然而修改之后结果也没什么区别好像。

public class Solution {    public String longestCommonPrefix(String[] strs) {        StringBuilder sb = new StringBuilder();        if(strs.length == 0) return new String("");        if(strs.length == 1) return strs[0];        int minlen = strs[0].length();        int len = strs.length;        for(int i = 0; i < minlen; i++){            char c = strs[0].charAt(i);            for(int j = 1; j < len; j++){                if(i == 0) minlen = Math.min(minlen, strs[j].length());                if(strs[j].length() <= sb.length() || strs[j].charAt(i) != c){                    return sb.toString();                }            }            sb.append(c);        }        return sb.toString();    }}


看了下别人的解法,利用String类的indexOf方法可以直接实现匹配,非常简洁。当出现不匹配时,将当前前缀字符串去掉最后一个字符。一次遍历即可完成。



0 0
原创粉丝点击