一、Given a string with n characters, suppose all the characters are different from each other, how many different substrings do we have?
A、n+1
B、n^2
C、n(n+1)/2+1
D、2^n-1
E、n!
答案: C
解析:排列组合问题:n个字符,n+1个空,选两个空插板,可以保证子串是连续的
子串(包含空串):n(n+1)/2 + 1
非空子串 : n(n+1)/2
非空真子串 :n(n+1)/2 - 1
二、字符串www.qq.com所有非空子串(两个子串如果内容相同则只算一个)个数是()
A、1024
B、1018
C、55
D、50
答案:C
解析:非空子串的个数共有n(n+1)/2=55个,由于相同子串算一个,所以要减去2个w,一个.,一个ww,一个q,所以还有50个
单个情形:w,w(重复的),w(重复的),q,q(重复的),. ,.(重复的):
两个情形:ww,ww(重复的)
三、串是一种特殊的线性表,其特殊性体现在()
A、可以顺序存储
B、数组元素是一个字符
C、可以连续存储
D、数据元素可以是多个字符
答案:B
解析:串又称为字符串,是一种特殊的线性表,其特殊性体现在数据元素是一个字符,也就是说串是一种内容受限的线性表。
(栈和队列是操作受限的线性表)
四、请找出下面代码中的所有错误。说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”。