zoukankan      html  css  js  c++  java
  • Longest Common Prefix 解答

    Question

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

    Solution

    第一思路是用Trie,但是对于一道Easy类别的题目,用Trie显然是杀鸡用牛刀。

    于是我们可以参考到构造Trie的过程,来找这个最长prefix。

    我们先用String array中第一个String初始化Pre,然后遍历剩下的每一个String,找重合的终点,删除不重合的部分。

     1 public class Solution {
     2     public String longestCommonPrefix(String[] strs) {
     3         if (strs == null || strs.length < 1) {
     4             return "";
     5         }
     6         int length = strs.length;
     7         int initLen = strs[0].length();
     8         StringBuilder result = new StringBuilder(initLen);
     9         for (int i = 0; i < initLen; i++) {
    10             result.append(strs[0].charAt(i));
    11         }
    12         for (int i = 1; i < length; i++) {
    13             String curString = strs[i];
    14             initLen = result.length();
    15             for (int j = 0; j < initLen; j++) {
    16                 if (j < curString.length() && curString.charAt(j) == result.charAt(j)) {
    17                     continue;
    18                 }
    19                 result.delete(j, initLen);
    20                 break;
    21             }
    22         }
    23         return result.toString();
    24     }
    25 }

    更简单的方法是用String.indexOf()的方法来判断重合终点。

     1 public class Solution {
     2     public String longestCommonPrefix(String[] strs) {
     3         if (strs == null || strs.length < 1) {
     4             return "";
     5         }
     6         int length = strs.length;
     7         int initLen = strs[0].length();
     8         String prev = strs[0];
     9         for (int i = 0; i < length; i++) {
    10             String curString = strs[i];
    11             while (curString.indexOf(prev) != 0) {
    12                 prev = prev.substring(0, prev.length() - 1);
    13             }
    14         }
    15         return prev;
    16     }
    17 }
  • 相关阅读:
    dom4j
    javase的一些基础(4)
    javase的一些基础(3)
    javase的一些基础(2)
    javase的一些基础(1)
    不要在乎形式
    世界观--我对这个世界的理解
    feign.FeignException: status 400 reading xxx 异常
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean
    SpringBoot整合Junit测试时要注意@SpringBootTest注解需指明启动类
  • 原文地址:https://www.cnblogs.com/ireneyanglan/p/4935131.html
Copyright © 2011-2022 走看看