




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、問(wèn)題描述問(wèn)題描述 在某個(gè)字符串(長(zhǎng)度不超過(guò)在某個(gè)字符串(長(zhǎng)度不超過(guò)100)中有)中有左括號(hào)、右括號(hào)和大小寫字母;規(guī)定(與常左括號(hào)、右括號(hào)和大小寫字母;規(guī)定(與常見的算數(shù)式子一樣)見的算數(shù)式子一樣)任何一個(gè)左括號(hào)都從內(nèi)任何一個(gè)左括號(hào)都從內(nèi)到外與在它右邊且距離最近的右括號(hào)匹配到外與在它右邊且距離最近的右括號(hào)匹配。寫一個(gè)程序,找到寫一個(gè)程序,找到無(wú)法無(wú)法匹配的左括號(hào)和右括匹配的左括號(hào)和右括號(hào),輸出原來(lái)字符串,并在下一行標(biāo)出不能號(hào),輸出原來(lái)字符串,并在下一行標(biāo)出不能匹配的括號(hào)。不能匹配的左括號(hào)用匹配的括號(hào)。不能匹配的左括號(hào)用“$”標(biāo)注標(biāo)注,不能匹配的右括號(hào)用不能匹配的右括號(hào)用“?”標(biāo)注。標(biāo)注。輸出輸出
2、 輸入包括輸入包括多組數(shù)據(jù)多組數(shù)據(jù),每組數(shù)據(jù)一行,包,每組數(shù)據(jù)一行,包含一個(gè)字符串,只包含左右括號(hào)和大小寫字含一個(gè)字符串,只包含左右括號(hào)和大小寫字母,字符串長(zhǎng)度不超過(guò)母,字符串長(zhǎng)度不超過(guò)100輸入輸入 對(duì)每組輸出數(shù)據(jù),輸出兩行,第一行包對(duì)每組輸出數(shù)據(jù),輸出兩行,第一行包含原始輸入字符,第二行由含原始輸入字符,第二行由$,?和和空格空格組組成,成,$和和?表示與之對(duì)應(yīng)的左括號(hào)和右括表示與之對(duì)應(yīng)的左括號(hào)和右括號(hào)不能匹配。號(hào)不能匹配。Sample inputSample output(ABCD(x)(rttyy()sss)(ABCD(x) $ )(rttyy()sss)( ? ?$問(wèn)題分析問(wèn)題分析
3、本題大致意思就是,對(duì)給定的多個(gè)字符本題大致意思就是,對(duì)給定的多個(gè)字符串,輸出其中無(wú)法匹配的括號(hào)標(biāo)記(左括號(hào)串,輸出其中無(wú)法匹配的括號(hào)標(biāo)記(左括號(hào)“$”,右括號(hào)右括號(hào)“?”),其他字符輸出空格,且),其他字符輸出空格,且位置嚴(yán)格按照原串。位置嚴(yán)格按照原串。 所以最重要的就是所以最重要的就是找出無(wú)法匹配的括號(hào)找出無(wú)法匹配的括號(hào)并標(biāo)記并標(biāo)記。問(wèn)題分析問(wèn)題分析 那么,如何找呢?那么,如何找呢? 首先要清楚什么是匹配。題目說(shuō),任何首先要清楚什么是匹配。題目說(shuō),任何一個(gè)左括號(hào)都從內(nèi)到外與在它右邊且距離最一個(gè)左括號(hào)都從內(nèi)到外與在它右邊且距離最近的右括號(hào)匹配。近的右括號(hào)匹配。(aa()a)bb) ?下圖中,相
4、同顏色的括號(hào)匹配。下圖中,相同顏色的括號(hào)匹配。問(wèn)題分析問(wèn)題分析 很容易想到,可以假設(shè)一開始查找到的很容易想到,可以假設(shè)一開始查找到的“(”無(wú)法匹配,設(shè)為無(wú)法匹配,設(shè)為“$”,并記錄下它的下標(biāo)并記錄下它的下標(biāo)。其他字符直接設(shè)為空格。其他字符直接設(shè)為空格。 如此,直到查找到如此,直到查找到“)”,訪問(wèn)它和離它最訪問(wèn)它和離它最近的近的“(”的下標(biāo),在原串中設(shè)為空格。的下標(biāo),在原串中設(shè)為空格。 當(dāng)然,如果找到的當(dāng)然,如果找到的“(”下標(biāo)是一個(gè)不可能下標(biāo)是一個(gè)不可能的值,例如的值,例如-1,則該則該“)”無(wú)法匹配,在原串中無(wú)法匹配,在原串中設(shè)為設(shè)為“?”。(aa()a)bb)$? ?這樣就寫出了代碼:這
5、樣就寫出了代碼:string s;while(getline(cin, S) /讀入整行cout S endl; /輸出原串int left102,j=0; /left記錄所有(在S中的下標(biāo),j只是指針memset(left, -1, sizeof(left); /初始化-1for(int i = 0; i = 0) /有匹配的左括號(hào),下標(biāo)不為-1Sleftj = Si = ; /設(shè)空j-; /找上一個(gè)左括號(hào)elseSi = ?; /未匹配elseSi = ; /其他字符設(shè)空cout S endl; /輸出(已修改后的S)對(duì)嗎?對(duì)嗎? 如果如果“(”下標(biāo)從下標(biāo)從left0開始存儲(chǔ),當(dāng)?shù)陂_始存儲(chǔ),當(dāng)?shù)谝粋€(gè)一個(gè)“(”匹配完后,匹配完后,j = -1,就會(huì)出現(xiàn)就會(huì)出現(xiàn)下標(biāo)下標(biāo)越界!越界! 只要修改一句:只要修改一句:leftj+ = i;left+j
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寒露氣象與生活實(shí)踐
- 護(hù)理三基知識(shí)模擬考試題
- 歌唱世界的魅力
- 變態(tài)心理學(xué)與健康心理學(xué)練習(xí)題+參考答案
- 借款汽車質(zhì)押合同范例
- 保姆入職合同范例
- 公路小修工程合同范例
- 胸悶氣藥物治療
- 水果養(yǎng)生知識(shí)講座
- 人行天橋合同范例
- DB35T 1933-2020 熔融沉積3D打印品幾何精度評(píng)價(jià)規(guī)范
- 《大氣污染物控制工程》-揮發(fā)性有機(jī)物污染控制
- 國(guó)家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 6-28-01-14 變配電運(yùn)行值班員 人社廳發(fā)2019101號(hào)
- 2024-2030年冷凍面團(tuán)產(chǎn)品行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- LED基礎(chǔ)知識(shí)題庫(kù)100道及答案(完整版)
- 抖音本地生活商家直播培訓(xùn)
- 新版高中物理必做實(shí)驗(yàn)?zāi)夸浖捌鞑?(電子版)
- 涉密項(xiàng)目保密工作方案
- 危險(xiǎn)貨物道路運(yùn)輸規(guī)則第7部分:運(yùn)輸條件及作業(yè)要求(JTT617.7-2018)
- 思政課課題國(guó)內(nèi)外研究現(xiàn)狀
- 泌尿外科管道護(hù)理規(guī)范
評(píng)論
0/150
提交評(píng)論