85.又見字串的問題
1.給出乙個函式來複製兩個字串a 和b。字串a 的後幾個位元組和字串b 的前幾個位元組重疊。
2.已知乙個字串,比如asderwsde,尋找其中的乙個子字串比如sde 的個數,如果沒有返回0,有的話返回子字串的個數。
思路:1.遍歷字串a中的字元,和b中的第乙個字元比較,若不相同則複製到目的字串strdest中,若相同則有兩種可能,一種是到達了ab重合部分的起始處,一種是恰巧相同,需要做出判斷,採用依次比較的方法,從此處遍歷到a字串結尾處,若一直相同則說明是第一種情況,通過samenum記錄重合部分的個數;若在到達a字串結尾之前出現了不相同的情況,說明是第二種情況,把相同部分的字元複製到strdest中,並從下乙個字元處繼續執行該演算法迴圈,具體實現參考**。
2.基於kmp字串匹配演算法,通過matchnum記錄匹配次數,每次匹配成功後,matchnum++,並從匹配起始位置的下乙個位置開始重新執行匹配演算法,直到源字串結束。
#include "stdafx.h"
#includeusing namespace std;
namespace ms100p_85
if (a[i] == '\0')
samenum = 0;
else
}else //否則,複製當前字元,前進乙個位置,繼續執行
}} for (j = samenum; b[j] != '\0'; j++)
strdest[i++] = b[j];
strdest[i] = '\0';
} void getnext(int next, const char* t)
else
k = next[k];
} }int kmp(const char* s,const char* t)
{ int matchnum = 0;
int len1 = strlen(s);
int len2 = strlen(t);
int *next = new int[len2];
getnext(next, t);
int i = 0, j = 0;
while (i
執行結果:
題解八十五
思路 遞迴 因為求的是二叉樹的深度,所以我們先求出左子樹深度和右子樹深度,再取兩者中大的那個值 1 如果root null,直接返回0 2 計算左子樹深度,即遞迴呼叫maxdepth root.left 3 計算左子樹深度,即遞迴呼叫maxdepth root.right 4 最後比較並返回較大的深...
資治通鑑 八十五卷(摘選)
初,宦人孟玖有寵於大將軍穎,玖欲用其父為邯鄲令,左長史盧志等皆不敢違,右司馬陸雲固執不許,曰 此縣,公府掾資,豈有黃門父居之邪!玖深怨之。玖弟超,領萬人為小督,未戰,縱兵大掠,陸機錄其主者 超將鐵騎百餘人直入機麾下,奪之,顧謂機曰 貉奴,能作督不!機司馬吳郡孫拯勸機殺之,機不能用。超宣言於眾曰 陸機...
第八十周學習生活總結
今天是2020年11月21日,沒想到寫到八十周了啊,紀念一下。今天降溫了,感覺昨天還在穿秋衣,明天就要穿棉襖了。這波啊,這波是冷空氣偷襲,我沒有防,大意了。前端的websocket 星期三的時候,我在碼雲上找了乙個即時通訊的demo,想著把我之前做的那個reactui的專案加上後端,如果可以的話直接...