zoukankan      html  css  js  c++  java
  • 求解两个字符串中最大长度的相同连续字符串

    这是我阿里巴巴笔试的时候碰到的一道题,本人不才,当时也没有多想(感觉时间有点紧,也顾不了那么多了),采取了暴力求解的办法

     1 void GetMaxLength(const string& a , const string& b)
     2 {
     3     int path  =0 , start = 0;
     4     int length = 0;
     5     if(a.size() >= b.size())
     6     {
     7          for(int i = 0 ; i < b.size(); i++)
     8         {
     9             for(int j = 1 ; j < (b.size()-i + 1) ; j++)
    10             {
    11                 start = i;
    12                 path = j;
    13                 striing str = b.substr(start,path);
    14                 if(a.find(str,0) != -1)
    15                 {
    16                     length = (length < str.size() ? str.size() : length);
    17                 }
    18             }
    19         }
    20     }
    21     else
    22     {
    23          for(int i = 0 ; i < a.size(); i++)
    24         {
    25             for(int j = 1 ; j < (a.size()-i + 1) ; j++)
    26             {
    27                 start = i;
    28                 path = j;
    29                 striing str = a.substr(start,path);
    30                 if(b.find(str,0) != -1)
    31                 {
    32                     length = (length < str.size() ? str.size() : length);
    33                 }
    34             }
    35         }
    36     }
    37 }

    暴力求解需要寻找出字符串的所有存在的子串。 如果不考虑字串查找需要的时间,算法时间复杂度O(n^2) 

    分治法求解

  • 相关阅读:
    centos/7下安装mysql5.7
    ubuntu下用vagrant搭建集群环境
    ubuntu下pyspark的安装
    Ubuntu下teamviewer的安装
    volatile(一)
    synchronized(九)
    synchronized(八)
    synchronized(七)
    synchronized(六)
    synchronized(五)
  • 原文地址:https://www.cnblogs.com/jackcin/p/3957355.html
Copyright © 2011-2022 走看看