日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

括号配对问题(C)

發布時間:2023/12/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 括号配对问题(C) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述
現在,有一行括號序列,請你檢查這行括號是否配對。
輸入
第一行輸入一個數N(0<N<=100),表示有N組測試數據。后面的N行輸入多組輸入數據,每組輸入數據都是一個字符串S(S的長度小于10000,且S不是空串),測試數據組數少于5組。數據保證S中只含有"[", “]”, “(”, “)” 四種字符
輸出
每組輸入數據的輸出占一行,如果該字符串中所含的括號是配對的,則輸出Yes,如果不配對則輸出No
樣例輸入
3
[(])
(])
([])
樣例輸出
No
No
Yes

思路分析:
①,
定義一個char類型的數字s【65535】負責存儲數據;還有一個char類型的字符ch,負責一個一個接收數據;int類型的n,負責控制次數; int類型的top負責查看s數組的下表。
②,
每輸入一個ch,進行判斷,若是‘(’或是‘【’,則top指向的s數組進行top++,將ch存入s里面;
若ch為‘)’并且s下標top>0(說明s里面已經有元素了),并且s【top-1】==‘(’,則top–;

同理,若ch為‘】’并且s下標top>0(說明s里面已經有元素了),并且s【top-1】==‘【’,則top–;
③,
最后判斷top的值是否為0,若是0,則s里面沒有剩余元素,即全部匹配;反之則沒有完全匹配。

####代碼如下:

#include<stdio.h> #include<string.h>int main() {char s[65535];int n;scanf("%d",&n);getchar();while(n--){int top=0;char a;while((a=getchar())!='\n'){if(a==')' && top>0 && s[top-1]=='(')top--;else if(a==']' && top>0 && s[top-1]=='[')top--;else s[top++]=a;}if(top==0) printf("Yes\n");else printf("No\n");}return 0; }

總結

以上是生活随笔為你收集整理的括号配对问题(C)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。