一、简答题
1、串的逻辑结构是什么?
答:串是字符串的简称,它也是一种线性结构。串是由零个或多个字符组成的有限序列。
2、空串与空格串的区别是什么?
答:空串:含零个字符,长度为0;
空格串:只包含空格字符。
3、两个串相等的充分必要条件是什么?
答:两个串相等的充分必要条件是:当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。
4、空串是任意串的子串吗?串自身呢?
答:空串是任何串的子串;一个串中任意个连续字符组成的序列都是该串的子串,所以串本身也是其子串。
5、什么是结点大小?
答:通常将链串中每个节点所存储的字符个数称为节点大小。
6、什么是模式匹配?
答:设有主串s和子串t,定位子串t就是要在主串s中找到一个与子串t相等的子串。通常把主串s称为目标串,把子串t称为模式串,因此定位也称作模式匹配。
7、KMP的特点是什么?
答:消除了主串指针的回溯,从而使算法效率有了某种程度的提高。
已知模式串t为:“abcdababcdae”,求出给出模式串写出next[]。
答:模式串用next数组存放它的“部分匹配”信息。实际上,模式串中的部分匹配信息就是真子串。
对于n号字符X,前面的子串中,找出与模式串t的开头字符匹配的有几个。
j 0 1 2 3 4 5 6 7 8 9 10 11
t[j] a b c d a b a b c d a e
next[j] -1 0 0 0 1 1 2 1 2 3 4 5
二、算法题
编写算法实现串的置换操作Replace( S, T, R), 即将串S中所有与串T相等的子串置换为串R.。
1、串的逻辑结构是什么?
答:串是字符串的简称,它也是一种线性结构。串是由零个或多个字符组成的有限序列。
2、空串与空格串的区别是什么?
答:空串:含零个字符,长度为0;
空格串:只包含空格字符。
3、两个串相等的充分必要条件是什么?
答:两个串相等的充分必要条件是:当且仅当两个串的长度相等并且各个对应位置上的字符都相同时,这两个串才是相等的。
4、空串是任意串的子串吗?串自身呢?
答:空串是任何串的子串;一个串中任意个连续字符组成的序列都是该串的子串,所以串本身也是其子串。
5、什么是结点大小?
答:通常将链串中每个节点所存储的字符个数称为节点大小。
6、什么是模式匹配?
答:设有主串s和子串t,定位子串t就是要在主串s中找到一个与子串t相等的子串。通常把主串s称为目标串,把子串t称为模式串,因此定位也称作模式匹配。
7、KMP的特点是什么?
答:消除了主串指针的回溯,从而使算法效率有了某种程度的提高。
已知模式串t为:“abcdababcdae”,求出给出模式串写出next[]。
答:模式串用next数组存放它的“部分匹配”信息。实际上,模式串中的部分匹配信息就是真子串。
对于n号字符X,前面的子串中,找出与模式串t的开头字符匹配的有几个。
j 0 1 2 3 4 5 6 7 8 9 10 11
t[j] a b c d a b a b c d a e
next[j] -1 0 0 0 1 1 2 1 2 3 4 5
二、算法题
编写算法实现串的置换操作Replace( S, T, R), 即将串S中所有与串T相等的子串置换为串R.。