《第4章串 作業(yè)(參考答案)》由會員分享,可在線閱讀,更多相關《第4章串 作業(yè)(參考答案)(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第四章 串 作業(yè)
參考答案:
1、簡述空串和空格串(或稱空格符串)的區(qū)別?
1)空串是指不包括任何字符的串,空格串指包含若干個空格字符的字符串;
2)空串長度為零,空格串長度為所包括的空格字符的個數(shù)。
2、設s=‘I AM A STUDENT ’,t=‘GOOD’,q=‘WORKER’.求:
1) StrLength(s)
2) StrLength(t)
3) SubString(s,8,7)
4) SubSting(t,2,1)
5) Index(s,’A’)
6) index(s,t)
7) Replace(s,’STUDENT’,q)
8) Concat(Sub
2、String(s,6,2),Concat(t,SubString(s,7,8)))
答:
1) StrLength(s)=14
2) StrLength(t)=4
3) SubString(s,8,7) = ‘STUDENT’
4) SubSting(t,2,1) = ‘O’
5) Index(s,’A’)= 3
6) index(s,t) = 0
7) Replace(s,’STUDENT’,q) = ‘I AM A WORKER ’
8) Concat(SubString(s,6,2),Concat(t,SubString(s,7,8))) = ‘A GOOD STUD
3、ENT’
3、若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,執(zhí)行
concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index(S2,‘8’),length(S2)))其結果是多少?
答:ABC###G1234
4、下列算法實現(xiàn)求采用順序結構存儲的串s和串t的一個最長公共子串。請將空格處填上正確的語句。
void maxcomstr(orderstring *s,*t; int index, length)
{
int i,j,k,
4、length1,con;
index=0;length=0;i=1;
while (i<=s.len)
{
j=1;
while(j<=t.len)
{
if (s[i]= =t[j])
{
k=1; length1=1; con=1;
while(con)
if (1) _ { length1=length1+1;k=k+1; }
el
5、se (2) __;
if (length1>length) { index=i; length=length1; }
(3)____;
}
else (4) ___;
}
(5) __
}
}
提示:
算法采用順序存儲結構求串s和串t的最大公共子串。串s用i指針(1<=i<=s.len)。t串用j指針(1<=j<=t.len)。算法思想是對每個i(1<=i<=s.len,即程序中第一個while循環(huán)),來求
6、從i開始的連續(xù)字符串與從j(1<=j<=t.len,即程序中第二個while循環(huán))開始的連續(xù)字符串的最大匹配。程序中第三個(即最內層)的while循環(huán),是當s中某字符(s[i])與t中某字符(t[j])相等時,求出局部公共子串。若該子串長度大于已求出的最長公共子串(初始為0),則最長公共子串的長度要修改。
程序:
(1) i+k<=s.len && j+k<=t.len && s[i+k]==t[j+k]
//如果在s和t的長度內,對應字符相等,則指針k 后移(加1)
(2) con=0
//s和t對應
7、字符不等時置標記退出
(3) j+=k
//在t串中,從第j+k字符再與s[i]比較
(4) j++
//t串取下一字符
(5) i++
//s串指針i后移(加1)。
5、(選作)令s=‘a(chǎn)aab’,t=‘a(chǎn)bcabaa’,u=‘a(chǎn)bcaabbabcabaacbacba’。
試分別求出它們的next函數(shù)值和nextval函數(shù)值。
8、
答:
對s=‘a(chǎn)aab’: next[] = {0, 1, 2, 3}
nextval[] = {0, 0, 0, 3}
對t=‘a(chǎn)bcabaa’: next[] = {0, 1, 1, 1,2,3,2}
nextval[] = {0,1,1,0,1,3,2}
對s=‘a(chǎn)bcaabbabcabaacbacba:
next[] = {0,1,1,1,2,2,3,1,2,3,4,5,3,2,2,1,1,2,1,1}
nextval[] = {0,1,1,0,2,1,3,0,1,1,0,5,3,2,2,1,0,2,1,0}