zoukankan      html  css  js  c++  java
  • Leetcode Longest Common Prefix

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


    解题思路:

    先对整个String数组预处理一下,求一个最小长度(最长前缀肯定不能大于最小长度)。

    然后以第0个字符串作为参照,从第1个字符串到最后一个字符串,对同一位置做判断,有不同字符串返回当前记录的字符串就行。


    Java code:

    public String longestCommonPrefix(String[] strs) {
            if (strs == null || strs.length == 0)
                return "";
            
            int min = Integer.MAX_VALUE;
            for(int i=0; i<strs.length;i++) {
                if(min > strs[i].length()) {
                    min = strs[i].length();
                }
            }
            
            StringBuilder res = new StringBuilder();
            int len = min;
            int index = 0;
            while(index < len) {
                for(int i=1; i< strs.length;i++) {
                    if(strs[i].charAt(index) != strs[0].charAt(index)) {
                        return res.toString();
                    }
                }
                res.append(strs[0].charAt(index));
                index++;
            }
            return res.toString();
        }

    空间复杂度更小的代码如下(from discussion):

    public String longestCommonPrefix(String[] strs) {
            if(strs.length == 0||strs == null)
                return "";
                
            for(int i = 0; i<strs[0].length(); i++){
                char x = strs[0].charAt(i);
                for(int j = 1; j<strs.length; j++){
                    if(strs[j].length() == i || strs[j].charAt(i) != x)
                        return strs[0].substring(0,i);
                }
            }
            
            return strs[0];
        }

    Reference:

    1. http://www.cnblogs.com/springfor/p/3872316.html

  • 相关阅读:
    查看mysql日志
    Redis配置和常用命令
    任务
    如何让maven 将工程依赖的jar 复制到WEB-INF/lib 目录下
    Tomcat8安装, 安全配置与性能优化(转)
    Web.xml详解(转)
    php精度比较函数bccomp
    php找到字符数组里最左匹配长度的字符(最长公共前缀匹配算法)
    PHP实现curl post和get
    Jquery 跨Dom窗口操作
  • 原文地址:https://www.cnblogs.com/anne-vista/p/4797597.html
Copyright © 2011-2022 走看看