PTA7 3 括號匹配 25 分

2021-09-22 22:35:40 字數 1041 閱讀 4018

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

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

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

sin(10+20
yes
]
no
解題思路: 這個題首先要清楚括號匹配的條件。除了要求各型別左括號的數目要與對應型別的右括號的數目相等以外,還要滿足括號之間的順序要合理。如樣例二,雖然左括號和右括號的數目都對應相等,但括號之間出現了交叉,這也是不匹配的。為了滿足這些要求,我們可以用堆疊來做。

每當讀入乙個左括號時,就將其入棧。每當讀入右括號時,先要判斷堆疊是否為空,若堆疊為空,說明右括號比左括號的數目大,括號不匹配;若棧不空,就出棧乙個符號,判斷該符號是否為對應型別的左括號,若是,說明括號匹配,繼續讀入下乙個符號,若不是則說明括號數目不匹配,或者存在括號交叉的情況。

#include #include#includetypedef struct stack *st;

st creat();

void push(st s, char c);

char pop(st s);

int isempty(st s);

int main()

else if (t[i] == '}')

} else if (t[i] == ']')

} else if (t[i] == ')')

} i++;

} if (isempty(s)) printf("yes");

else printf("no");

return 0;

}st creat()

void push(st s, char c)

char pop(st s)

int isempty(st s)

PTA 7 3 可逆素數 15分

請從小到大輸出所有4位數的可逆素數。可逆素數指 乙個素數將其各位數字的順序倒過來構成的反序數也是素數。無一行中以空格間隔輸出可逆素數,行尾無空格。行末尾無多餘空格和換行 無 無 單位 南昌航空大學 時間限制 100 ms 記憶體限制 64 mb 長度限制 16 kb 1 public class m...

PTA 7 3 宿舍誰最高? 10分

pta 7 3 宿舍誰最高?學校選拔籃球隊員,每間宿舍最多有4個人。現給出宿舍列表,請找出每個宿舍最高的同學。定義乙個學生類student,有身高height,體重weight等。首先輸入乙個整型數n 1 n 1000000 表示n位同學。緊跟著n行輸入,每一行格式為 宿舍號,name,height...

PTA 7 3樹的遍歷

7 3 樹的遍歷 25 分 給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入格式 輸入第一行給出乙個正整數n 30 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。輸出格式 在一行中輸出該樹的層序遍歷的序...