多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 2014年阿里巴巴在線筆試題-第3大題-公共最長字符串長度

2014年阿里巴巴在線筆試題-第3大題-公共最長字符串長度

來源:程序員人生   發布時間:2014-09-06 18:24:50 閱讀次數:3459次

說明

2014年阿里巴巴在線筆試題-第3大題    首先,我沒參加這次的阿里巴巴在線筆試題,題目全部是從別人口中描述而來,對于以下的分析,如果有什么不對的地方還望指教。也希望大家能夠有更好的辦法,希望大家來能不吝賜教。

題目描述

給定一個主字符串和一個匹配字符串,現在問你,找出 “主串中可匹配到的匹配串中子串的最大長度”,可能比較繞,舉個例子吧

主字符串       abcdefgsdff     記為A

匹配字符串   abefgf               記為B

要求的值就是  3   因為 A中有efg B中也有efg ,而且也是AB中公共最長字符串

就是求兩個字符串中連續公共最長字符串的長度。

分析

思路1.

       由于匹配穿B的長度有限,所以可以求出B的所有連續子串 (時間復雜度O(M^2)),然后用每一個子串向主串匹配(每次操作最快O(N)),這種思路的時間復雜度就是O(M^2*N),代碼自行設計,此處不贅述。

思路2.

      使用DP的方式,思路我就不說了。

      時間復雜度: O(M*N)

      空間復雜度:O(M)

     下面使用這種思路實現的c++代碼:

#include <iostream> #include <string.h> using namespace std; #define SUBLEN 50 #define MAINLEN 1000 char str1[SUBLEN]; //匹配串 char str2[MAINLEN]; //主串 int tmp1[SUBLEN]; //輔助1 int tmp2[SUBLEN]; //輔助2 //數組復位 void init(int * arr,int len){ for(int i = 0 ; i < len ;i++)arr[i]=0; } /** 計算主串中可匹配到的匹配串中子串的最大長度 時間復雜度:O(m*n) 空間復雜度:O(m) */ int getMaxSubLen(){ int maxLen = 0; for(int i = 0 ; i < strlen(str2);i++){ if(i&1){ for(int j = 0 ; j < strlen(str1) ; j++ ){ if(str2[i]==str1[j]){ tmp1[j+1] = tmp2[j] + 1; if(maxLen < tmp1[j+1])maxLen = tmp1[j+1]; }else tmp1[j+1] = 0; } }else{ for(int j = 0 ; j < strlen(str1) ; j++ ){ if(str2[i]==str1[j]){ tmp2[j+1] = tmp1[j] + 1; if(maxLen < tmp2[j+1])maxLen = tmp2[j+1]; }else tmp2[j+1] = 0; } } } return maxLen; } /* asawdecsescdsfdrfrc ascsesfdr sdjnfksdsdlkmfl sjskm sdsdsdsdsdsdwwwww sdswwwsdsdwwwww 測試結果 4 2 9 */ int main() { while(cin>>str2>>str1){ init(tmp1,50); init(tmp2,50); cout<<getMaxSubLen()<<endl; } return 0; }

是不是還有更好的算法?O(N)?

好吧,這個問題好像就是 “最長公共子串”  看來自己退化的不行不行的了 

這里有時間復雜度:O(m+n)的解法 

http://blog.csdn.net/yysdsyl/article/details/4226630

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中文字幕乱码二三区免费 | 波多野结衣178部中文字幕 | 亚洲欧美中文字幕专区 | 99成人免费视频 | 五月天基地 | 日本高清免费视频色www | 性色视频免费 | 欧美最爽乱淫视频播放黑人 | 欧美又大粗又爽又黄大片视频黑人 | 欧美性一区二区三区 | 手机精品视频在线观看免费 | 手机在线看片国产 | 一级日本特黄毛片视频 | 国产护士资源总站 | 欧美一级在线观看播放 | 亚洲v天堂 | 在线观看91精品国产性色 | 久久在线免费 | 日本aa视频 | 欧美在线高清 | 日韩精品亚洲人成在线播放 | 91在线亚洲精品一区 | 乱老女人一二区视频 | 另类ts人妖一区二区三区 | jizz日本护士视频 | 真人毛片免费全部播放完整 | 二区国产 | 牛仔裤美女国产精品毛片 | 国产亚洲欧美成人久久片 | 国产精品欧美亚洲韩国日本99 | 久久精品五月天 | 国产情精品嫩草影院88av | 澳门特级α片免费观看视频 | 亚洲天天网综合自拍图片专区 | 久久久久久一品道精品免费看 | 婷婷伊人久久 | 日韩乱码视频 | jizzjizz日本护士视频 | 国产亚洲综合激情校园小说 | 最新国产成人综合在线观看 | 久久久精品久久久久久 |