演算法題Day6 有效的括號

2021-09-27 08:14:19 字數 977 閱讀 4581

給定乙個只包含 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

1.左括號必須用相同型別的右括號閉合

2.左括號必須以正確的順序閉合

空字串可以被認定為有效字串

示例一:

輸入:"()"

輸出:true

示例二:

輸入:"(){}"

輸出:true

示例三

輸入:"(]"

輸出:false

示例四:

輸入:"[(])"

輸出:false

示例五:

輸入:""

輸出:true

我都答案(未完成):

bool isvalid(string s) ',')'};

int b[6] = ;

int c[len];

//int p_index, q_index;

int x=0;

for(int i = 0,k=0; i括號匹配,首先應該想到利用棧的知識來求解本題。(詳見資料結構第三章棧與佇列)

棧(stack)又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。

bool isvalid(string s) 』,』]』,判斷棧頂是否為對應左邊的括號』(,』{』,』[』。如果是的話,棧頂元素退棧。如果不是的話,說明括號不匹配,直接返回false。當遇到左邊的括號』(,』{』,』[』,進棧。最後,當棧為空,說明所有的括號都匹配了。直接返回st.empty();

技巧:判斷左右括號是否匹配,從ascii碼表中,知道右邊的括號減去左邊的括號為1或者2的時候,說明括號匹配了。

Day6上 括號匹配專項

滑稽的題 t1 include include include include include include include using namespace std intn inta,b,x intmain if x 10 else if x 20 if a 3 b printf no n re...

演算法學習 Day6

實現乙個加法器,使其能夠輸出a b的值。輸入包括兩個數a和b,其中a和b的位數不超過1000位。可能有多組測試資料,對於每組資料,輸出a b的值。示例1 2 6 10000000000000000000 10000000000000000000000000000000 8 1000000000001...

每日一題 day6

基礎題 1 兩個棧實現乙個佇列 思路 棧的特點 後進先出 佇列的特點 先進先出 兩個棧可將乙個棧用於入資料,另乙個用於出資料 define crt secure no warnings include includetemplate class myqueue void pop 刪除頭部資料 s2....