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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

括号匹配问题(0962)

發(fā)布時(shí)間:2025/3/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 括号匹配问题(0962) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

描述

假設(shè)表達(dá)式中允許包含兩種括號(hào):圓括號(hào)和方括號(hào)。編寫一個(gè)算法判斷表達(dá)式中的括號(hào)是否正確配對(duì)。

input

由括號(hào)構(gòu)成的字符串,包含”(“、”)“、”[“和”]“。

output

如果匹配輸出YES,否則輸出NO。

樣例輸入

[([][]())]

樣例輸出

YES

?

這道題的思路是遇到左括號(hào)就入棧,遇到右括號(hào)就讓棧頂元素出棧匹配,若匹配成功繼續(xù),若不成功則輸出NO,若將字符串掃描完畢棧不為空,則說(shuō)明匹配不成功

?

代碼如下

1 #include<iostream> 2 #include<algorithm> 3 #include<memory.h> 4 #include<string.h> 5 using std::cin; 6 using std::cout; 7 using std::endl; 8 using std::sort; 9 10 #define N 100 11 struct Stack { 12 char date[N]; 13 int top; 14 } stack; 15 //棧初始化 16 void init(Stack *stack) { 17 stack->top=-1; 18 memset(stack->date,0,sizeof(char)*N);//數(shù)據(jù)清零 19 } 20 21 bool isempty(Stack*stack) { //判斷是否為空 22 return stack->top==-1; 23 } 24 bool isfull(Stack*stack)//判斷棧溢出 25 { 26 return stack->top==N-1; 27 } 28 int gettop(Stack*stack)//獲取棧頂 29 { 30 return stack->date[stack->top]; 31 } 32 void push(Stack*stack,char a)//壓棧 33 { 34 if(isfull(stack)){ 35 return; 36 }else{ 37 stack->top++; 38 stack->date[stack->top]=a; 39 } 40 41 } 42 void pop(Stack*stack)// 43 { 44 if(isempty(stack)){ 45 return; 46 }else{ 47 stack->top--; 48 } 49 } 50 bool isleft(char a){ 51 return (a=='(')||(a=='['); 52 } 53 bool isright(char a){ 54 return (a==']')||(a==')'); 55 } 56 bool juge(char a,char b){ 57 return (a=='('&&b==')')||(a=='['&&b==']'); 58 } 59 int main(){ 60 Stack stack; 61 init(&stack); 62 char str[100]; 63 cin>>str; 64 int len=strlen(str); 65 for(int i=0;i<len;i++){ 66 if(isleft(str[i])){ 67 push(&stack,str[i]); 68 }else { 69 if(isright(str[i])){ 70 if(!juge(stack.date[stack.top],str[i])){ 71 cout<<"NO"; 72 return 0; 73 } 74 pop(&stack); 75 } 76 } 77 } 78 cout<<"YES"; 79 return 0; 80 } 81 82

?

轉(zhuǎn)載于:https://www.cnblogs.com/swust-wangyf/p/6725196.html

總結(jié)

以上是生活随笔為你收集整理的括号匹配问题(0962)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。