数据结构1800刷题😁错题集
序号标题为解答,引用为题目和答案
- 子串很多个,不是首次出现才是子串,首次出现的叫模式匹配
设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )
A.求子串
B.联接
C.匹配
D.求串长
- 第一步求每一位的最大公共串长度
a a a b
0 1 2 0
第二步右移一位
a a a b
0 1 2 3
第三步去掉最后边超出来的一位,第一位补上-1
a a a b
-1 0 1 2
第四步看情况要不要给每一位都加上1
a a a b
0 1 2 3
已知串S=′aaab′,其Next数组值为(A)
A 0123
B 1123
C 1231
D 1211
- 解题思路同上
串’ababaaababaa’的next数组为 C
A 012345678999
B 012121111212
C 011234223456
D 012301232234
字符串‘ ababaabab’ 的 nextval 为( A )
A.(0,1,0,1,04,1,0,1) B.(0,1,0,1,0,2,1,0,1)
C.(0,1,0,1,0,0,0,1,1) D.(0,1,0,1,0,1,0,1,1 )
- 子串: n(n+1)/2 + 1
非空子串:n(n+1)/2
非空真子串:n(n+1)/2 - 1
若串 S=’software’,其子串的数目是( B )。
A.8 B.37 C.36 D.9
- .KMP 算法的特点是在模式匹配时指示主串的指针不会变小
- 串是一种数据对象和操作都特殊的线性表
- 设正文串长度为 n,模式串长度为 m,则串匹配的 KMP 算法的时间复杂度为 O(m + n)
- 设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式串。