【基础知识题】 1. 简述空串和空格串(或称空格符串)的区别。 2. 对于4.1.2节中所述串的各个基本操作,讨论是否可由其它基本操作构造而得?如何构造? 3.
设s = 'I AM A STUDENT', t = 'GOOD', q = 'WORKER'。 4.
已知下列字符串 5. 试问执行以下函数会产生怎样的输出结果? 6. 已知:s='(XYZ)+* ',t='(X+Z)*Y'。试利用联接、求子串和置换等基本运算,将 s 转化为 t。 7. 令 s='aaab',t='abcabaa',u='abcaabbabcabaacbacba'。试分别求出它们的 next 函数值和 nextval 函数值。 8. 已知主串 s = 'ADBADABBAABADABBADADA', 9. 编写对串求逆的递推算法。 10. 编写算法,从串 s 中删除所有和串 t 相同的子串。 11. 编写算法,实现串的基本操作 Replace(&S,T,V)。 12. 假设以块链结构作串的存储结构。试编写判别给定串是否具有对称性的算法,并要求算法的时间复杂度为 O(StrLength(S))。 13. 假设以结点大小为1(带头结点)的链表结构表示串,则在利用 next 函数值进行串匹配时,在每个结点中需设三个域:数据域 chdata,指针域 succ 和指针域 next。其中 chdata 域存放一个字符;succ 域存放指向同一链表中后继结点的指针;next 域在主串中存放指向同一链表中前驱结点的指针;在模式串中,存放指向当该结点的字符与主串中的字符不等时,模式串中下一个应进行比较的字符结点(即与该结点字符的 next 函数值相对应的字符结点)的指针,若该结点字符的 next 函数值为零,则其 next 域的值应指向头结点。试按上述定义的结构改写求模式串的 next 函数值的算法。 14. 假设以定长顺序存储结构表示串,试设计一个算法,求串 s 中出现的第一个最长重复子串及其位置,并分析你的算法的时间复杂度。 | 【基础知识题】 |