時間限制:
1000ms
記憶體限制:
65536kb
描述現在有乙個僅由小寫字母組成的字串s,假定將字母a,b,c...z依次編號為1,2,3...26,現在要在s中找到所有長度為m的且字母編號和為q的子串。
輸入第一行輸入n,表示測試資料的個數,以下n行每行包含乙個測試資料
一行測試資料由三部分組成:字串s(長度不超過100)、m(m小於s的長度)、q。
輸出輸出符合條件的子串個數
後面每行輸出乙個相應的子串
樣例輸入
1abcabc 3 6
樣例輸出
4
abc
bca
cab
abc
原始碼(openjudge通過)
#include"stdio.h"
#include"string.h"
#define n 100
int main()
if(sum==q)
sum=0; }
printf("%d\n",k);
for(i=0;i
count--; }
return 0;
}
(三)Rabin Karp字串查詢演算法
不同於傳統的字元比較,本演算法的核心在於雜湊。先計算出子串 pat 的乙個雜湊值,然後從文字 txt 中,從 i 0 開始,計算從當前 i 開始的子串長度的字串的雜湊,比如 pat 250 txt 230240250 計算的是 230 302 024 的雜湊,依次類推,與 250 的雜湊值進行比較,...
字元匹配問題(1) Rabin Karp演算法
字串匹配問題 1 rabin karp演算法 1.問題描述 給定目標字串 t 0.n 1 基於 0 的陣列,陣列長度為 n 和模式串 p 0.m 1 問 p 可否匹配 t 中的任意子串,如果可以,返回匹配位置。2.問題分析 直觀分析 brute force 的蠻力法,適用於較小規模的字串匹配。優化 ...
字串匹配演算法 Rabin Karp 演算法
字串匹配演算法 rabin karp 演算法 參考資料 1 演算法導論 2 lalor 3 記憶碎片 在實際應用中,rabin karp 演算法對字串匹配問題能較好的執行。rabin karp 演算法需要對字串和模式進行預處理,其預處理時間為 o m 在最壞情況下的執行時間為 o n m 1 m 但...