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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

华为编程大赛之括号匹配

發布時間:2024/1/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华为编程大赛之括号匹配 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

輸入一個字符串表達式,判斷括號匹配

例如:{}{}{}【】【】(){【】}? 匹配

{【{】}}? 不匹配

?

使用堆棧實現,源碼如下:

?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
//typedef char* PCHAR;
#define STACK_SIZE 100
int top = -1;

void inistack(PCHAR& s)
{
//?char* s;
?s=(char*)malloc(STACK_SIZE);
?memset(s,'/0',STACK_SIZE);
//?return s;

}
void destorystack(PCHAR& s)
{
?free(s);?
}
void push(char* s,char e)
{
?//top++;
?if (top == STACK_SIZE-1)
?{
??s = (char*)realloc(s,STACK_SIZE*2);
?}
?top++;
?s[top] = e;
}
char pop(char* s)
{
?char c=s[top];
?top--;
?return c;
}
BOOL isEmpty()
{
?return top == -1;
}
int scaleMah(const char* a)
{
?int sizes = strlen(a);
?int i=0;
?char c='d';
?char* s=&c;
?inistack(s);
?char zhan[100] = {0};
?int j=0;
?for (i=0;i<sizes;i++)
?{

??switch (a[i])
??{
??case '(':
??case '[':
??case '{':
???{
????push(s,a[i]);
????break;
???}
??case ')':
???{
????if(isEmpty()) return 0;
????if(pop(s) != '(') return 0;????
????
????break;
???}
??case ']':
???{
????if(isEmpty()) return 0;
????if(pop(s) != '[') return 0;?????
????break;
???}
??case '}':
???{
????if(isEmpty()) return 0;
????if(pop(s) != '{') return 0;
????printf("/n");
????break;
???}
??}
?}
?destorystack(s);
?if(!isEmpty()) return 0;
?else return 1;
??
}

int main()
{
?printf("please input /n/n");
??char a[100] = {0};
??scanf("%s",a);
??int r = scaleMah(a);
??if (r == 0)
??{
???printf("not mach/n");
??}
??else printf("mached!/n");

?return 0;
}

總結

以上是生活随笔為你收集整理的华为编程大赛之括号匹配的全部內容,希望文章能夠幫你解決所遇到的問題。

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