7 2 括號匹配問題

2021-10-05 23:12:41 字數 880 閱讀 8016

給定一串字元,不超過100個字元,可能包括括號、數字、字母、標點符號、空格,程式設計檢查這一串字元中的( ) ,[ ],是否匹配。

輸入在一行中給出一行字串,不超過100個字元,可能包括括號、數字、字母、標點符號、空格。

如果括號配對,輸出yes,否則輸出no。

sin(10+20)

yesno

首先我們要讀懂題幹,這個題是要匹配括號,我們知道 :

1. ( ) 是匹配的,和[ ]同理

2. ( } 是不匹配的,其餘情況相同

3. ( 是不匹配的 因為這裡的 ) 是要與最接近它的 左 括號進行匹配 也就是 「」 是不是能找到匹配的物件,這一點很重要)

4. return0;

}int

right

(char c)

//判斷是不是右括號

'||c==

']')

return0;

}int

check

(char left,

char right)

//判斷左右括號是否匹配

else

if(left=='')

?1:0

;}else

return

(right==

']')?1

:0;}

intmain()

elseif(

right

(s[i]))

else

}else

continue;}

if(!top)

//如果棧空了,那麼ok,沒有單身狗

printf

("no");

//棧沒空 輸出no

return0;

}

括號匹配問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 基本演算法思...

括號匹配問題

假設表示式中包含三種括號 圓括號 方括號和花括號,它們可以相互巢狀,如 等均為正確的格式,而等為不正確的格式。以下為演算法程式 括號匹配問題 include include int main char ch while ch getchar eof count 0 break case if cou...

括號匹配問題

問題描述 假設表示式中允許包含兩種括號 圓括號與方括號,其巢狀的順序隨意。如 或 等為正確的匹配 而 或者 或者 均為錯誤的匹配。現要求編寫程式,判斷輸入的一行括號是否是匹配的,如果是匹配的,輸出yes,否則輸出no。解題思路 檢驗括號是否是匹配的方法可以用 期待的急迫程度 這個概念來描述。例如考慮...