日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

华为编程大赛之括号匹配

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

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

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

{【{】}}? 不匹配

?

使用堆棧實(shí)現(xiàn),源碼如下:

?

#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;
}

總結(jié)

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

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