久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP實現求解最長公共子串問題的方法

這篇文章主要介紹了PHP實現求解最長公共子串問題的方法,簡單描述了求解最長公共子串問題算法原理,并結合實例形式分析了PHP實現求解最長公共子串的具體操作技巧,需要的朋友可以參

本文實例講述了PHP實現求解最長公共子串問題的方法。分享給大家供大家參考,具體如下:

題目:如果字符串一的所有字符按其在字符串中的順序出現在另外一個字符串二中,則字符串一稱之為字符串二的子串。

注意,并不要求子串(字符串一)的字符必須連續出現在字符串二中。即,可以不連續,但順序不能變。

請編寫一個函數,輸入兩個字符串,求它們的最長公共子串,并打印出一個最長公共子串。

例如:輸入兩個字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它們的最長公共子串,

下面的算法是根據網上的java算法由酒逍遙 翻譯過來的

已經經過修正

LCS經典算法php版本

<?php
class LCS{
  public static function main(){
    //設置字符串長度
    $substringLength1 = 20;
    $substringLength2 = 20; //具體大小可自行設置
    $opt=array_fill(0,21,array_fill(0,21,null));
    // 隨機生成字符串
    $x = self::GetRandomStrings($substringLength1);
    $y = self::GetRandomStrings($substringLength2);
    $startTime = microtime(true);
    // 動態規劃計算所有子問題
    for ($i = $substringLength1 - 1; $i >= 0; $i--){
      for ($j = $substringLength2 - 1; $j >= 0; $j--){
        if ($x[$i] == $y[$j])
          $opt[$i][$j] = $opt[$i + 1][$j + 1] + 1;
        else
          $opt[$i][$j] = max($opt[$i + 1][$j], $opt[$i][$j + 1]);
      }
    }
    echo "substring1:".$x."\r\n";
    echo "substring2:".$y."\r\n";
    echo "LCS:";
    $i = 0;
    $j = 0;
    while ($i < $substringLength1 && $j < $substringLength2){
      if ($x[$i] == $y[$j]){
        echo $x[$i];
        $i++;
        $j++;
      } else if ($opt[$i + 1][$j] >= $opt[$i][$j + 1])
        $i++;
      else
        $j++;
    }
    $endTime = microtime(true);
    echo "\r\n";
    echo "Totle time is " . ($endTime - $startTime) . " s";
  }
  public static function GetRandomStrings($length){
    $buffer = "abcdefghijklmnopqrstuvwxyz";
    $str="";
    for($i=0;$i<$length;$i++){
      $random=rand(0,strlen($buffer)-1);
      $str.=$buffer[$random];
    }
    return $str;
  }
}
LCS::main();
?>

運行結果:

substring1:cgqtdaacneftabsxvmlb
substring2:suwjwwakzzhghbsmnksg
LCS:absm
Totle time is 0.000648975372314 s

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》及《PHP數學運算技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應用程序,并傳遞相關參數方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實現依賴注入過程以及相關知識點分享,對此有興趣的朋友跟著小編學習下吧。
php遍歷一個文件夾內的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現達到清空一個目錄的效果。本文給大家分享實例代碼,需要的朋友參考
主站蜘蛛池模板: 久草网址| 久久久久国产一区二区三区 | 欧美在线观看一区 | 国产精品精品视频一区二区三区 | 韩日一区 | 国产在线一区二区三区 | 精品中文字幕一区二区三区 | 黄色成人免费在线观看 | a级毛片免费高清视频 | 国产情品 | 亚洲欧美综合精品另类天天更新 | 亚洲成av人片在线观看 | 亚洲国产精品99久久久久久久久 | 欧美手机在线 | 国产乱码精品一区二区三区忘忧草 | 国产999精品久久久 日本视频一区二区三区 | 精品成人在线视频 | 成人免费xxxxx在线视频 | 久久久久国产精品午夜一区 | a在线免费观看 | 久草在线在线精品观看 | 男人av的天堂 | 天天久久 | 亚洲欧洲av在线 | 日韩福利| 日本欧美在线 | 自拍偷拍第一页 | 日韩一区二区三区在线 | 午夜精品视频 | 日韩一区不卡 | 精品日韩一区二区 | 欧美一级欧美三级在线观看 | 日韩精品一区二区久久 | 最新中文字幕一区 | 午夜影院在线观看版 | 午夜色婷婷 | 在线免费观看a级片 | 成在线人视频免费视频 | 国产传媒毛片精品视频第一次 | 特黄级国产片 | 国产一区二区三区四区hd |