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;
    }
    
  • 相关阅读:
    Excel入门
    夹缝中求和
    移动撤销
    CSP2020-j2 T4 方格取数
    CSP2020-j2 T3表达式(expr)
    直播 获奖(live)
    优秀的拆分(power)
    P5661 公交换乘
    P1160 队列安排
    P1083 借教室
  • 原文地址:https://www.cnblogs.com/duyue6002/p/7243934.html
Copyright © 2011-2022 走看看