freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第四章串答案(完整版)

2025-07-31 03:50上一頁面

下一頁面
  

【正文】 兩串中一個串長是另一個串長(包括串長為1僅有一個字符的情況)的數(shù)倍,而且長串就好象是由數(shù)個短串經(jīng)過連接操作得到的。{int i=0,j=0。} //對應(yīng)字符不相等,I回溯,j仍為0。 scanf(“%d%d”,amp。失敗的情況是s串的第mn個字符比t串某字符比較失敗,時間復(fù)雜度為o(m*n)。{int i=0,a[]; // 整數(shù)存儲到數(shù)組a,i記整數(shù)個數(shù) scanf(“%c”,amp。{int index=0,max=0。length=1。因為已經(jīng)給定順序存儲結(jié)構(gòu),我們可將s串從第(i+j1)到串尾()(以便將t串插入):若j,則向左移;若j,則向右移動;若j=,則不必移動。k=i+j1。k++) [i1+k]=[k]。 //將s1第i個字符前的子串復(fù)制到s1,這時k=i1for(k=0。k++) [k]=[k]。 //creat操作是將串常量(此處為空串)賦值給temp。 //將串temp和剩余的串s連接后再賦值給s}//if結(jié)束}//算法結(jié)束[題目分析]本題是字符串的插入問題,要求在字符串s的pos位置,插入字符串t。}while(*p!=’\0’amp。exit(0)。) {q++。}//串s的pos后的子串右移,空出串t的位置。6.[題目分析]本題屬于查找,待查找元素是字符串(長4),將查找元素存放在一維數(shù)組中。{int low = 0,high = n 1。39。) num=10*num+(X[i++]39。)*10+num)。算法從左到右掃描字符串s1,找到第一個非空格字符,計數(shù)到n,第n個拷入字符串s2的字符不得為空格,然后將余下字符復(fù)制到字符串s3中。 39。 amp。){ printf(字符串s1沒有%d個有效字符\n,n)。amp。 } *q=*p。) {*q=*p。for (i=0。{int i,num[36];char ch; for(i=0;i36;i++)num[i]=0;// 初始化 while((ch=getchar())!=‘’) //‘’表示輸入字符串結(jié)束。//需要使用靜態(tài)變量scanf (%c,amp。//字符串逆序存儲 }A[i] = 39。和 39。 。 //求串s39。13.[題目分析]對讀入的字符串的第奇數(shù)個字符,直接放在數(shù)組前面,對第偶數(shù)個字符,先入棧,到讀字符串結(jié)束,再將棧中字符出棧,送入數(shù)組中。j=1。算法思想是從左到右掃描表達(dá)式,對讀出的字符,先查出其符號類碼:若是變量或常量,就到變量名表和常量表中去查是否已有,若無,則在相應(yīng)表中增加之,并返回該字符在變量名表或常量表中的下標(biāo);若是操作符,則去查其符號類碼。 while(ch!=‘’) //‘’是表達(dá)式結(jié)束符{switch(ch)of {case‘A’: case ‘B’: case ‘C’: //ch是變量TY=0; //變量類碼為0 for(i=1;i=;i++)if([i]==ch)break;//已有該變量,i記住其位置 if(i){[i]=ch;++;}//變量加入 case‘0’: case‘1’: case‘2’: case‘3’: case‘4’: case‘5’://處理常量case‘6’: case ‘7’:case‘8’: case‘9’: TY=1;//常量類碼為1   for(i=1;i=;i++)if([i]==ch)break;////已有該常量,i記住其位置  if(i){[i]=ch;++;}//將新常量加入 default: //處理運算符  TY=operator(ch);//類碼序號  i=’\0’; //填入TOKEN的addr域(期望輸出空白)}//結(jié)束switch,下面將ch填入TOKEN表[++].typ=TY;[].addr=i;scanf(“%c”,amp。}//while}//算法結(jié)束[程序討論]為便于討論,各一維數(shù)組下標(biāo)均以1開始,在字符為變量或常量的情況下,將其類碼用TY記下,用i記下其NAMEL表或CONSL表中的位置,以便在填TOKEN表時用。如此下去,直到表達(dá)式處理完畢。 else s[j++]=s[i]。void RearrangeString() //對字符串改造,將第偶數(shù)個字符放在串的后半部分,第奇數(shù)個字符前半部分。在串s中的起始位置,s串中39。)。設(shè)這兩部分分別叫串s1和串s2,要設(shè)法從s,s39。 //字符串結(jié)尾標(biāo)記}//結(jié)束算法InvertStore。if (ch!= 39。num[i]++;} // 數(shù)字字符   else if(‘A’=ch=‘Z’){i=ch65+10。i++) //在類C中,一維數(shù)組下標(biāo)從零開始if ([i]!= [i])return (0)。 p++。\039。\039。} if(*(q)==39。 in){*q=*p。//濾掉s1左端空格 if(*p== 39。 int i=0。039。)。039。 //取中間位置 if(strcmp(string[mid],name) ==0) return (mid)。下面給出類C語言的解法typedef struct node{char data[4]。 //指針q回退到串t的最后一個字符 for(j=1。 } //查找字符串t的長度x,循環(huán)結(jié)束時q指向39。/039。ipos) {p++。 對插入位置pos要驗證其合法性,小于1或大于串s的長度均為非法,因題目假設(shè)給字符串s的空間足夠大,故對插入不必判溢出。n=length(s)。下面討論replace(s,t,v)的算法。k++) [i+k]=[k]//將t串接到s1的尾部l=+。else =+()。 else if (j) //s串中被替換子串的長度小于t串的長度。當(dāng)然,應(yīng)考慮置換后的溢出問題。return(max)。 //length記局部重復(fù)子串長度,i為字符數(shù)組下標(biāo) while(in1) if(s[i]==s[i+1]) {i++。amp。算法中未討論輸入錯誤(如s串長小于t串長)。n)。amp。amp。五、算法設(shè)計[題目分析]判斷字符串t是否是字符串s的子串,稱為串的模式匹配,其基本思想是對串s和t各設(shè)一個指針i和j,i的值域是0..mn,j的值域是0..n1。該算法的技術(shù)特點是主串指針i不回溯。第6行的p[J]=p[K]語句的意義是,當(dāng)?shù)贘個字符在模式匹配中失配時,若第K個字符和第J個字符不等,則下個與主串匹配的字符是第K個字符;否則,若第K個字符和第J個字符相等,則下個與主串匹配的字符是第K個字符失配時的下一個(即NEXTVAL[K])。 (2)利用BF算法的匹配過程: 利用KMP算法的匹配過程: 第一趟匹配: aabaabaabaac 第一趟匹配:aabaabaabaac aabaac(i=6,j=6) aabaac(i=6,j=6) 第二趟匹配: aabaabaabaac 第二趟匹配:aabaabaabaac aa(i=3,j=2) (aa)baac 第三趟匹配: aabaabaabaac 第三趟匹配:aabaabaabaac a(i=3,j=1)
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1