nyoj 括號匹配問題

2022-03-13 17:28:51 字數 975 閱讀 2554

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:3

描述現在,有一行括號序列,請你檢查這行括號是否配對。

輸入第一行輸入乙個數n(0輸出

每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no

樣例輸入

3

[(])

(])([()])

樣例輸出

no

noyes

**

網路上傳者

naonao

問題分析----這種問題一般是從裡到外進行配對比如第三個(【【】()】)先進行裡面的判斷【】()兩個配對,所以剪掉,形成新的鍊錶(【】)再判斷【】,顯然配對

所以剩下(),依次這樣最後得到head(指標)為null,如果最後為null,則作為完全匹配,否則作為不完全配對......

實現**: (c語言版)

由於c++的stl寫,太簡單了,就不寫了;

#include

#include

#include

typedef struct node

node;

int main( void )

p2->next=null;

/* p1=head;

while(p1!=null)

puts("");*/

while(1)

else

}else

p2=p1;

}/* p2=p1=head;

while(p1!=null)

if(p2!=null) puts("");*/

if(!flag)break;

}puts(head==null?"yes":"no");

free(head);

// free(p1);

// free(p2);

}return 0;

}

括號匹配問題(nyoj2)

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

NYOJ 括號匹配(二)

題意 給你幾對括號,讓你看一下括號是否配對,輸出最少新增多少個括號可以使括號配對 這道題和括號配對 一 不一樣,剛開始我也想用棧試試看能不能,但是如何記錄需要新增多少對括號?如果用最後棧裡還有多少元素沒出棧那是不行的,比如 在棧裡剩餘是4個,其實只需要2個括號就行了 那麼只有用別的方法了 這題是一道...

NYOJ 括號匹配(二)

include include const int maxn 10001 char s maxn int dp maxn max void lics max 0 for int i 0 i時間限制 1000 ms 記憶體限制 65535 kb 難度 6描述 給你乙個字串,裡面只包含 四種符號,請問你...