C语言实现括号配对问题
2024-10-19 07:38:56
代码如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
// 写一个判断的括号是否匹配的函数
int MatchCheck(char a[],int len){
int flag = ;
char s[];
int top,i;
char temp;
// 初始化一个栈
top = ;
for(i=;i<len;i++){
if(a[i]=='['){ // 如果是左括号直接入栈
s[++top]=a[i];
continue;
}
if(a[i]==']'){ // 如果是右括号,则尝试匹配
temp = s[top];
if(temp=='['){
flag = ;
top--;
continue;
}else{
flag = ;
break;
}
} if(a[i]=='('){ // 如果是左括号直接入栈
s[++top]=a[i];
continue;
}
if(a[i]==')'){ // 如果是右括号,则尝试匹配
temp = s[top];
if(temp=='('){
flag = ;
top--;
continue;
}else{
flag = ;
break;
}
}
}
if(flag&&(top==)){
return ;
}else{
return ;
} }
int main(){
// 提示输入一个数
int N,i;
scanf("%d",&N);
int len;
// 对N组数据循环判断
int count = ;
int result[];
while(count<=N){
char a[]={'\0'};
// 读入一行字符串
scanf("%s",&a);
// 求字符串的长度
len = strlen(a);
result[count]=MatchCheck(a,len);
count++;
}
for(i=;i<count;i++){
if(result[i]){
printf("Yes\n");
}else{
printf("No\n");
}
}
return ;
}
样例输入和输出如下:
最新文章
- C#记录程序运行时间记录显示
- 日志插件 log4net 的使用
- android 比较完善json请求格式
- 初学java之菜单条,菜单,菜单项的设置
- Django session 详解-part II-session
- Oracle 10进制转36进制
- [UNIX环境高级编程](第三版)中apue.h的问题
- Sea.js
- [HMLY]10.iOS中block的基础用法
- Android 应用内多语言切换
- Asp.Net Core 轻松学-多线程之取消令牌
- 经过N条边的最短路
- [Sw] 使用 Swoole Server task/协程 处理大数据量异步任务时注意
- ci test
- redhat vi 命令
- MFC的组合框(ComboBox)控件切换下拉样式
- 零基础学python之构建web应用(入门级)
- 降雨量 HYSBZ - 1067(RMQ)
- Struts2页面配置和访问servlet API
- python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学