這個題目主要考的是kmp演算法,我感覺kmp演算法理解起來有點小困難,但是**超級短,時間複雜度為(n+m),但是我發現字串hash更好用一些,而且很容易理解
這個文章中有我對字串hash的模板
下面是這個題通過的**,用了幾十毫秒,速度還是相當快的
#include #include using namespace std;
const int n = 1000010 ,p = 13331;
typedef unsigned long long ull;
int n, m;
char str[n];
ull h[n],p[n];
char str1[n];
ull h1[n],p1[n];
ull get(int l,int r)
int main()
int t;
scanf("%d",&t);
while(t--)
ull t1 = h1[m];
bool tf = true;
for(int i = m;i<=n;i++)
}if(tf)
printf("not found\n");
}return 0;
}
kmp演算法的模板和題解以後再補上,如果大家直接呼叫庫函式好像也能通過這個題目,但是這並不是這個題考察的意圖 7 1 列出葉結點(25 分) 資料結構
7 1 列出葉結點 25 分 對於給定的二叉樹,本題要求你按從上到下 從左到右的順序輸出其所有葉節點。輸入格式 首先第一行給出乙個正整數 n 10 為樹中結點總數。樹中的結點從 0 到 n 1 編號。隨後 n 行,每行給出乙個對應結點左右孩子的編號。如果某個孩子不存在,則在對應位置給出 編號間以 1...
浙大資料結構 KMP 串的模式匹配 25 分
給定兩個由英文本母組成的字串 string 和 pattern,要求找到 pattern 在 string 中第一次出現的位置,並將此位置後的 string 的子串輸出。如果找不到,則輸出 not found 本題旨在測試各種不同的匹配演算法在各種資料情況下的表現。各組測試資料特點如下 資料0 小規...
資料結構 7 1 括號匹配
給定一串字元,不超過100個字元,可能包括括號 數字 字母 標點符號 空格,程式設計檢查這一串字元中的 是否匹配。輸入格式 輸入在一行中給出一行字串,不超過100個字元,可能包括括號 數字 字母 標點符號 空格。輸出格式 如果括號配對,輸出yes,否則輸出no。輸入樣例1 sin 10 20 輸出樣...