腾讯
不定项 25,编程 3
Index
字符串系数
暴力 KMP(70%)
def get_nxt(T):
n = len(T)
nxt = [0] * n
max_len = 0
for i in range(1, n):
while max_len > 0 and T[max_len] != T[i]:
max_len = nxt[max_len - 1]
if T[i] == T[max_len]:
max_len += 1
nxt[i] = max_len
return nxt
def kmp(S, T):
pos = []
nxt = get_nxt(T)
cnt = 0
for i in range(len(S)):
while cnt > 0 and T[cnt] != S[i]:
cnt = nxt[cnt - 1]
if T[cnt] == S[i]:
cnt += 1
if cnt == len(T):
pos.append(i - len(T) + 1)
cnt = nxt[cnt - 1]
return pos
k = int(input())
A = input()
B = input()
res = dict()
for i in range(len(A) - k + 1):
p = A[i: i + k]
# print(p)
if p not in res:
res[p] = len(kmp(B, p))
print(sum(res.values()))暴力-使用C++库函数(AC)
腾讯-计算机视觉笔试题 ac笔经面经牛客网
```C++ size_t str_count(const string& S, const string& T) {
}
int main() { int k = 2; //cin >> k; string A{"abab"}; //cin >> A; string B{"ababab"}; //cin >> B;
}
三元组
Python(50%)
C++(60%)
最后更新于
这有帮助吗?