description
submit
statistics
discussion
time limit per test: 1.0 seconds
memory limit: 256 megabytes
子串的定義是在乙個字串中連續出現的一段字元。這裡,我們使用 s[l
…r] 來表示 s
字串從 l
到 r(閉區間)的子串。在本題中,字串下標從 0
開始。顯然,對於長度為 n
的字串共有 n(n
+1)2
個子串。
對於乙個給定的字串 s
,唐納德給出 q
次詢問,第 i
次詢問包括三個引數 li,
ri,z
i ,問在 s[l
i…ri
] 的所有子串中共有多少個恰好為 z
輸入具有如下形式: s
ql1r
1z1l
2r2z
2⋮lq
rqzq
第一行乙個字串 s
。第二行乙個整數 q
。接下來每行:首先兩個整數 li,
ri(0≤l
i≤ri
| ),然後是乙個非空字串 z
i 。整數和整數,整數和字串間以單空格隔開。
字串中只會出現 26
個小寫英文本母。
資料規模約定:
對於每次詢問,輸出乙個整數,表示答案。
input
thisisagarbagecompetitionhahaha
50 30 a
1 5 is
25 30 hah
6 12 ag
7 12 ag
output62
221
分析:kmp的題,知識不是讓你在文字串中匹配模式串,而是讓你擷取文字串中的某一部分對其進行匹配模式串的個數。
練kmp的之後我就在c++的next陣列裡掙扎了好久,沒想到這次又掉進去了,我滴天,套模板的題,早知道我就將next陣列改個名字了。
#include#include#includechar s[1005],h[1005];
int next[1005];
int q,l,r,n;
void get_next()///求得模式串的next陣列
if (h[k + 1] == h[i])
next[i] = k;
}}int kmp()///進行匹配
if (h[k + 1] == s[i])
k = k + 1;
if (k == n-1)
}return sum;
}int main()
return 0;
}
344 反轉字元
看到題目的第一反應,好簡單啊,直接將第乙個與最後乙個對調,第二個與倒數第二個對調不就搞定了?不過這樣時間和空間上複雜度肯定會高一點,結果也不出所料 執行用時 216 ms 在reverse string的python3提交中擊敗了8.11 的使用者 記憶體消耗 17.6 mb 在reverse st...
EOJ 莫干山奇遇
出題人當然是希望出的題目有關oxx,於是想方設法給題目配上一些有關oxx的背景故事,使得它看起來不那麼無趣。但有的時候卻無法引入合適的小姐姐,使得oxx顯得非常可憐。所以出題人刪除了故事,只留下乙個枯燥乏味的數學問題。故事已刪除 給乙個長度為n的序列a1,a2,an,求乙個長度為m的序列b1,b2,...
leetcode演算法題 344
344.編寫乙個函式,其作用是將輸入的列表或字串反轉過來,假設輸入的資料型別是list.示例1 輸入 h e l l o 輸出 o l l e h 分析 之前看過別人用python解這道題,直接return s 1 可以用是可以用,但了解不到這裡的演算法的精髓,有點討巧的意思。這題的使用演算法思路來...