題目1153 括號匹配問題

2021-06-16 17:47:19 字數 1120 閱讀 5384

題目描述:在某個字串(長度不超過100)中有左括號、右括號和大小寫字母;規定(與常見的算數式子一樣)任何乙個左括號都從內到外與在它右邊且距離最近的右括號匹配。寫乙個程式,找到無法匹配的左括號和右括號,輸出原來字串,並在下一行標出不能匹配的括號。不能匹配的左括號用"$"標註,不能匹配的右括號用"?"標註.

輸入:輸入包括多組資料,每組資料一行,包含乙個字串,只包含左右括號和大小寫字母,字串長度不超過100。

注意:cin.getline(str,100)最多只能輸入99個字元!

輸出:對每組輸出資料,輸出兩行,第一行包含原始輸入字元,第二行由"$","?"和空格組成,"$"和"?"表示與之對應的左括號和右括號不能匹配。

樣例輸入:

)(rttyy())sss)(

樣例輸出:

)(rttyy())sss)(

? ?$

#include #include using namespace std;

char a[100];

char b[100];

stacks;

int main()

else if(a[i]==')')

else

b[i] = '?';

}else

b[i] = ' ';

}while(!s.empty())

b[i] = 0;

puts(a);

puts(b);

}return 0;

}

1.輸入乙個字串: scanf("%s",a);

2.判斷是否到達字串的末尾: a[i]!=0

3.為了使輸出形成字串,在其最後乙個字元後新增乙個空字元。a[i] = 0

4.輸出字串: puts(a);

5.定義乙個棧.

#include using namespace std;

stacks;

學習筆記 九度OJ 題目1153 括號匹配問題

題目1153 括號匹配問題 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 1759 解決 786 題目描述 在某個字串 長度不超過100 中有左括號 右括號和大小寫字母 規定 與常見的算數式子一樣 任何乙個左括號都從內到外與在它右邊且距離最近的右括號匹配。寫乙個程式,找到無法匹配的左括...

九度OJ 1153 括號匹配問題

此題乃學習使用stack模板第一題。收穫了以下知識點 pop 返回void,故想要獲取棧頂並刪除需要打出top pop組合拳 stack模板申請出的物件長度是動態的,無需靜態分配 題目描述 在某個字串 長度不超過100 中有左括號 右括號和大小寫字母 規定 與常見的算數式子一樣 任何乙個左括號都從內...

九度 OJ 1153 括號匹配問題

在某個字串 長度不超過100 中有左括號 右括號和大小寫字母 規定 與常見的算數式子一樣 任何乙個左括號都從內到外與在它右邊且距離最近的右括號匹配。寫乙個程式,找到無法匹配的左括號和右括號,輸出原來字串,並在下一行標出不能匹配的括號。不能匹配的左括號用 標註,不能匹配的右括號用 標註.輸入包括多組資...