版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
voidString_Reverse(Stringtypes,Stringtype&r)//s{StrAssign(r初始化r{}st中沒(méi)有的字符構(gòu)成的新串{{ { pare(c,SubString(t,k,1));k判斷當(dāng)前字t中}intReplace(Stringtype&S,StringtypeT,StringtypeV);//S中所有子串T{++)// ))//{//Theadtaili+=Strlen(V當(dāng)前指針跳到插入串以后return會(huì)引起不希望的,雖然在大多數(shù)情況下沒(méi)有影響.請(qǐng)思考:設(shè)S='place',T='ace',VintDelete_SubString(Stringtype&s,Stringtypet)//從串st相同的子{ {StrAssign(S,Concat(head,tail));//head,tail連接為新串returnn,{Initstack(ssStringtype{if(r為字母push(s,r);{if(StackEmpty(s))returnERROR;if(StackEmpty(s))returnERROR;c}if(!StackEmpty(s))returnERROR;returnOK;returntype的定義見(jiàn){ pare(Stringtypes,Stringtypet)//串的比較,s>t時(shí)返回正數(shù),s=t0,s<t{if(i>s[0]&&i>t[0])return0;elseif(i>s[0])return-t[i];elseif(i>t[0])returns[i];elsereturns[i]-t[i]; {{if(k>T[0找到了與T匹配的子串:{])//{}//{}returnn;typedefstructcharch;int}void {mytypeT[MAXSIZE];//用結(jié)構(gòu)數(shù)組T統(tǒng)計(jì)結(jié){)if(T[j].ch)T[j].num++;elseT[j]={c,1}; st中沒(méi)有的字符構(gòu)成的新串{{for(j=1;j<i&&s[j]!=c;js的當(dāng)前字符c{}intSubString_Delete(Stringtype&s,Stringtypet)//從串st{{if(j>m)//t匹配的子串{for(k=i;k<=s[0]-t[0];ks[k]=s[k+t[0左移刪除}returnn;typedefcharLStrNodeLStrNode,*LString;voidStringAssign(LString&s,LStringt)//t{{{q-}q-voidStringCopy(LString&s,LStringt)//把串t為串s.與前一個(gè)程序的區(qū)別在,s業(yè)已存在{{}{} pare(LStrings,LStringt)//串的比較,s>t時(shí)返回正數(shù),s=t<t{if(!p&&!q)return0;elseif(!p)return-(q->ch);elseif(!q)returnp->ch;elsereturnp->ch-q->ch; intStringLen(LStrings)//s的長(zhǎng)度(元素個(gè)數(shù){returni;LString*Concat(LStrings,LStringt)//st形成新串,{{}//for//串}//for//串{returnp;LString*Sub_String(LStrings,intstart,intlen)//返回一個(gè)串,sstartlen的子串{for(r=s;start;start--,r=r->nextstartr{}//串returnp;returnvoidLString_Concat(LString&t,LString&s,charc)//用塊鏈結(jié)構(gòu),把串s插入t的字符c{while(p&&!(i=Find_Char(p,cp=p->nextcif(!p)//沒(méi)找到{t.tail=s.tailst}{r=(Chunk*)malloc(sizeof(Chunk));//將包含字符c的節(jié)點(diǎn)p為兩個(gè)for(j=0;j<i;j++)r->ch[j]='#';//p包含c及其以前的部分for(j=i;j<CHUNKSIZE;j++)//新結(jié)點(diǎn)rc以后的部分{p->ch[jp的后半部分和r的前半部分的字符改為無(wú)效字符}}r->next=q;sprt.curlen+=s.curlen;修改串長(zhǎng)intFind_Char(Chunk*p,charc)//c,如找到則返回位置是第幾個(gè)字符,0{if(i==CHUNKSIZE)return0;elsereturnintLString_Palindrome(LStringL)//判斷以塊鏈結(jié)構(gòu)的串L是否為回文序列,是{p=S.head;i=0;k=1;i指示元素在塊中的下標(biāo),k指示元素在整個(gè)序列中的序號(hào)(1開(kāi){if(k<=S.curlen/2Push(S,p->ch[i將前半段的字符入串elseif(k>(S.curlen+1)/2){Pop(S,c將后半段的字符與棧中的元素相匹配if(p->ch[i]!=c)return0;//失配}//{}return1;voidHString_Concat(HStrings1,HStrings2,HString&t)//s12{if(t.ch)free(t.ch);for(i=1;i<=s1.length;i++)t.ch[i-1]=s1.ch[i-1];i++)t.ch[i-1]=s1.ch[i-1];for(j=1;j<=s2.length;j++,i++)t.ch[i-1]=s2.ch[j-1];{{if(k==T.lengthT匹配的子串:分三種情況處理{{}}//{}returnn;StatusHString_Insert(HString&S,intpos,HStringT)//把TSpos{if(pos<1)returnif(pos>S.length)pos=S.length+1;//當(dāng)插入位置大于串長(zhǎng)時(shí),看作添加在串尾];//return{{{//}{}if(j>t[0])returni-if(j>t[0])returni-voidLGet_next(LString&T)//get_next{{{}elseq=q-{{{{}elseq=q-{return發(fā)現(xiàn)匹配后,要往回找子串的頭returnNULL;{{for(k=0,j=1;j<=S[0]-i;j++)//jS2的當(dāng)前指針,S1i+j,兩{])//elsek=0;k)//{//}{printf("LongestRepeatingSubstringlength:%d\n",maxlen); Position2:%d\n",lrs1,lrs2);}elseprintf("NoRepeatingSubstring分析:i代表"錯(cuò)位值".本算法的思想是,SS21格,2格,3格,...S1相匹配,如果存在最長(zhǎng)重復(fù)子串,則必然能在此過(guò)程中被發(fā)現(xiàn).lrs1,lrs2,maxlen來(lái)記錄已發(fā)現(xiàn)的最長(zhǎng)重復(fù)子串第一次出現(xiàn)位置,第二次出現(xiàn)位置和長(zhǎng)度.題目中未說(shuō)明"重復(fù)子串"是否允許有部分,本算法假定允許.如不允許,只需在第二個(gè)fork<=i即可.O(Strlen(S)^2).voidGet_LPubSub(StringtypeS,StringtypeT)//ST的最長(zhǎng)公共子串位置和長(zhǎng){{}{為簡(jiǎn)化設(shè)計(jì),STA,B{if(i<0)iBA的錯(cuò)位值,向左為負(fù),0,{}//B有一部分在Aelseif(i>A[0]-{}//B有一部分在A{}//BA左右兩端之間//ABA上需要匹配的區(qū)間(B重合的區(qū)間){if(A[j]==B[j-i])k++;elsek=0;{}{{} 心靜{}//將A,B上的位置映射回S,T上的位置printf("LongestPublicSubstringlength:%d\n",maxlen);printf("PositioninS:%d
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 田徑社團(tuán)工作規(guī)劃5篇
- 秋季學(xué)期七年級(jí)數(shù)學(xué)備課組工作計(jì)劃范文(12篇)
- DB4102T 019-2021 開(kāi)封市傳統(tǒng)食品制作技藝 鍋貼
- DB4101T 66-2023 藥品網(wǎng)絡(luò)銷售同城配送服務(wù)規(guī)范
- 暑假學(xué)習(xí)計(jì)劃模板集錦(30篇)
- 2024年斷橋鋁門(mén)窗安裝服務(wù)協(xié)議
- 2024年工程合作:分包商與總包商細(xì)致分工合同
- 2024年建筑工程物資供應(yīng)協(xié)議
- 2024年技術(shù)轉(zhuǎn)讓合同:專利使用權(quán)協(xié)議
- 2024年新式合作協(xié)議模板
- 第16講 國(guó)家出路的探索與挽救民族危亡的斗爭(zhēng) 課件高三統(tǒng)編版(2019)必修中外歷史綱要上一輪復(fù)習(xí)
- 機(jī)器學(xué)習(xí) 課件 第10、11章 人工神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)
- 北京市人民大學(xué)附屬中學(xué)2025屆高二生物第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 書(shū)籍小兵張嘎課件
- 氫氣中鹵化物、甲酸的測(cè)定 離子色譜法-編制說(shuō)明
- 2024秋期國(guó)家開(kāi)放大學(xué)??啤稒C(jī)械制圖》一平臺(tái)在線形考(形成性任務(wù)四)試題及答案
- 2024年經(jīng)濟(jì)師考試-中級(jí)經(jīng)濟(jì)師考試近5年真題集錦(頻考類試題)帶答案
- 2024年黑龍江哈爾濱市通河縣所屬事業(yè)單位招聘74人(第二批)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 私募基金管理人-廉潔從業(yè)管理準(zhǔn)則
- 房地產(chǎn)估價(jià)機(jī)構(gòu)內(nèi)部管理制度
- 藝術(shù)哲學(xué):美是如何誕生的學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論