设计一个算法Strcmp(s,t),以字典顺序比较两个英文字母串s和t的大小,假设两个串均以顺序串存储。例如:"ab" <; "abcd""abcd" <; "abd"
int Strcmp(SqString s,SqString t){ int i,comlen; if (s.length<;t.length)comlen=s.length;//求s和t的共同长度 elsecomlen=t.length; for (i=0;i<;comlen;i++)//在共同长度内逐个字符比较if (s.data[i]>;t.data[i])return 1;else if (s.data[i]<;t.data[i])return -1; if (s.length==t.length)//s==treturn 0; else if (s.length>;t.length)//s>;treturn 1; else return -1;//s<;t}[/i][/i][/i][/i]
举一反三
- 设计一个算法Count(s,t),求串t在串s中出现的次数。(例如,对于s="aababababc",t="abab",这里认为t在s中仅仅出现2次,其中不考虑子串重复问题。 假设两个串均以顺序串存储。)
- 已知串s="abcdefg",串t="abcd",则concat(s,t)的结果是( )。 A: 1 B: abcd C: abcdefgabcd D: efg
- 设有两个串S和T,其中T是S的子串,求T在S中首次出现的位置的算法称为( )。 A: 模式匹配 B: 串链接 C: 串比较 D: 求子串
- 设有两个串S和T,其中T是S的子串,求T在S中首次出现的位置的算法称为( )。 A: 求子串 B: 联接 C: 匹配 D: 串比较
- 假设定长顺序存储结构表示串试设计一个算法求串s和串t的一个最长公共子串,并分析你的算法的时间复杂度若要求第一个出现的最长公共子串(既它在串s和串t的最左边的位置上出现)和所有的最长公共子串,讨论你的算法能否实现。
内容
- 0
设有两个字符串s和t,判断t是否为s子串的算法称为()。 A: 求子串 B: 求子串 C: 串匹配 D: 求串长
- 1
设有两个串T和S,其中T是S的子串,则求T在S中首次出现位置的算法称为( )。 A: 求子串 B: 求串长 C: 模式匹配 D: 串联接
- 2
设有两个串T和S,其中T是S的子串,则求T在S中首次出现位置的算法称为()。
- 3
设有两个串s和t,判断t是否为子串的算法称为() A: 求子申 B: 串连接 C: 串匹配 D: 求串长
- 4
写算法,实现顺序串的基本操作StrReplace(&s,t,v)。