時間限制: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描述 給你乙個字串,裡面只包含 四種符號,請問你...