C语言实现括号配对的方法示例

 更新时间:2021年09月18日 16:20:45   作者:胡卫雄  
本文主要介绍了C语言实现括号配对的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文主要介绍了C语言实现括号配对的方法示例,分享给大家,具体如下:

代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
// 写一个判断的括号是否匹配的函数
int MatchCheck(char a[],int len){
    int flag = 0;
    char s[10000];
    int top,i;
    char temp;
    // 初始化一个栈
    top = 0;
    for(i=0;i<len;i++){
        if(a[i]=='['){ // 如果是左括号直接入栈
            s[++top]=a[i];
            continue;
        }
        if(a[i]==']'){ // 如果是右括号,则尝试匹配
            temp = s[top];
            if(temp=='['){
                flag = 1;
                top--;
                continue;
            }else{
                flag = 0;
                break;
            }
        }

        if(a[i]=='('){ // 如果是左括号直接入栈
            s[++top]=a[i];
            continue;
        }
        if(a[i]==')'){ // 如果是右括号,则尝试匹配
            temp = s[top];
            if(temp=='('){
                flag = 1;
                top--;
                continue;
            }else{
                flag = 0;
                break;
            }
        }
    }
    if(flag&&(top==0)){
        return 1;
    }else{
        return 0;
    }

}
int main(){
    // 提示输入一个数
    int N,i;
    scanf("%d",&N);
    int len;
     // 对N组数据循环判断
     int count = 1;
     int result[5];
     while(count<=N){
         char a[10000]={'\0'};
        // 读入一行字符串
        scanf("%s",&a);
         // 求字符串的长度
        len = strlen(a);
        result[count]=MatchCheck(a,len);
        count++;
     }
     for(i=1;i<count;i++){
         if(result[i]){
             printf("Yes\n");
         }else{
             printf("No\n");
         }
     }
     return 0;
}

样例输入和输出如下:

到此这篇关于C语言实现括号配对的方法示例的文章就介绍到这了,更多相关C语言括号配对内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++小知识:不要去做编译器的工作

    C++小知识:不要去做编译器的工作

    今天小编就为大家分享一篇关于C++小知识:不要去做编译器的工作,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 如何判断一个整数的二进制中有多少个1

    如何判断一个整数的二进制中有多少个1

    本篇文章是对如何判断一个整数的二进制中有多少个1的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言版三子棋游戏实现代码

    C语言版三子棋游戏实现代码

    这篇文章主要为大家详细介绍了C语言版三子棋游戏的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C++二分查找算法实例

    C++二分查找算法实例

    这篇文章主要为大家详细介绍了C++二分查找算法的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 详解C语言中accept()函数和shutdown()函数的使用

    详解C语言中accept()函数和shutdown()函数的使用

    这篇文章主要介绍了详解C语言中accept()函数和shutdown()函数的使用,用来操作socket相关的网络通信,需要的朋友可以参考下
    2015-09-09
  • C语言实现小学生随机出题测试计分

    C语言实现小学生随机出题测试计分

    这篇文章主要为大家详细介绍了C语言实现小学生随机出题测试计分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C++中的std::nothrow使用

    C++中的std::nothrow使用

    这篇文章主要介绍了C++中的std::nothrow使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C语言十进制转二进制代码实例

    C语言十进制转二进制代码实例

    这篇文章主要介绍了C语言十进制转二进制代码实例,并且转换后会统计二进制1的个数,实例简单明了,需要的朋友可以参考下
    2014-06-06
  • C语言中带返回值的宏定义方式

    C语言中带返回值的宏定义方式

    这篇文章主要介绍了C语言中带返回值的宏定义方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C语言解决青蛙跳台阶问题(升级版)

    C语言解决青蛙跳台阶问题(升级版)

    所谓的青蛙跳台阶问题,就是指一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。本文将用C语言解决这一问题,需要的可以参考一下
    2022-01-01

最新评论