zoukankan      html  css  js  c++  java
  • 剑指Offer 14. 最长公共前缀

    1. 题目

    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""

    2. 示例

    示例1:

    输入:strs = ["flower","flow","flight"]
    输出:"fl"

    示例2:

    输入:strs = ["dog","racecar","car"]
    输出:""
    解释:输入不存在公共前缀。

    3. 题解

    采用的思想很简单,纵向扫码,匹配每个字符串的第i个字符是否相等。相等继续;不等直接返回之前的。

    时间复杂度:O(mn),m为字符串个数,n为最短字符串长度。

    4. 实现

     1 public class LongestCommonPrefix14 {
     2     // 判断第i个字符是否相等
     3     public String longestCommonPrefix(String[] strs) {
     4         if(strs.length <= 1) return strs[0];
     5         int i = 0;
     6         while (i <= 200) {
     7             for(int j = 1; j < strs.length; j++) {
     8                 if(i < strs[0].length()) {
     9                     char str0 = strs[0].charAt(i);
    10                     if (i >= strs[j].length() || strs[j].charAt(i) != str0) {
    11                         return strs[0].substring(0, i);
    12                     }
    13                 } else {
    14                     return strs[0].substring(0, i);
    15                 }
    16             }
    17             i++;
    18         }
    19         return "";
    20     }
    21 
    22     public static void main(String[] args) {
    23         // String[] strs = {"flower","flow","flight"};
    24         // String[] strs = {"dog","racecar","car"};
    25         //String[] strs = {"a", "a"};
    26         String[] strs = {"a"};
    27         System.out.println(new LongestCommonPrefix14().longestCommonPrefix(strs));
    28     }
    29 }

    5. 结语

      努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!

      如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。

    但行好事 莫问前程
  • 相关阅读:
    Linux rcp命令详解
    Linux patch命令详解
    Linux paste命令详解
    linux od命令详解
    linux mv命令详解
    Linux more命令详解
    Linux mktemp命令
    MySQL状态变量详解
    mysql性能分析show profile/show profiles
    MySQL执行计划
  • 原文地址:https://www.cnblogs.com/haifwu/p/14943312.html
Copyright © 2011-2022 走看看