zoukankan      html  css  js  c++  java
  • LeetCode & Q14-Longest Common Prefix-Easy

    String

    Description:

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

    Example

    For strings "ABCD", "ABEF" and "ACEF", the LCP is "A"

    For strings "ABCDEFG", "ABCEFG" and "ABCEFA", the LCP is "ABC"

    测试用例想全面:

    1. 数组为空或为null
    2. 只有一个元素
    3. 全部完全匹配
    4. 匹配部分

    my Solution:

    public class Solution {
        public String longestCommonPrefix(String[] strs) {
            String prefix = "";
            if (strs.length == 1) return strs[0];
            else if (strs.length > 1) {
                prefix = strs[0];
                int index = 0;
                Integer[] temp = new Integer[strs.length - 1];
                for (int i = 1; i < strs.length; i++) {
                    for (index = 0; index < prefix.length() && index < strs[i].length(); index++) {
                        if (prefix.charAt(index) != strs[i].charAt(index)) {
                            break;
                        }
                    }
                    temp[i - 1] = index;
                }
                index = Collections.min(Arrays.asList(temp));
                return prefix.substring(0, index);
            }
            return prefix;
        }
    }
    

    如何从数组中获得最大/最小数:

    Collections.min(Arrays.asList(array));
    

    如何跳出多层嵌套循环:

    boolean flag = false;
    for (; !flag; ) {
      for (; ;) {
        if (condition) {
          flag = true;
          break;
        }
      }
    }
    

    我的解法还是太复杂,没有考虑到indexOf的利用。

    Best Solution:

    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length == 0)    return "";
        String pre = strs[0];
        int i = 1;
        while(i < strs.length){
            while(strs[i].indexOf(pre) != 0)
                pre = pre.substring(0,pre.length()-1);
            i++;
        }
        return pre;
    }
    
  • 相关阅读:
    软件需求模式阅读笔记02
    软件需求模式阅读笔记1
    问题账户需求分析
    浅谈软件架构师的工作过程
    架构之美阅读笔记五
    架构之美阅读笔记四
    架构之美阅读笔记三
    架构之美阅读笔记二
    架构之美阅读笔记一
    软件需求与分析课堂讨论一
  • 原文地址:https://www.cnblogs.com/duyue6002/p/7243934.html
Copyright © 2011-2022 走看看