c判断括弧是否匹配
这里我没有用堆栈。直接用一个数组input[SIZE]接收用户的输入,在遍历数组,对数组进行操作。已经匹配好的括弧直接用#号覆盖,最后遍历数组。如果数组只有#号,没有其他元素,则匹配。否则不匹配。
/*
*判断括弧是否匹配
*/ #include <stdio.h>
#include <stdlib.h>
#include <string.h> #define SIZE 10000
#define FALSE 0
#define TRUE 1 int main()
{
char input[SIZE]; //存放输入 int point_first = ; //遍历每一次的输入的指针
int point_last = ;
int flag = TRUE; //flag = TRUE括号匹配 flag = FALSE括号不匹配
int num = ; //一共要处理多少次输入
int length = ;
int i = ; scanf("%d", &num); while(num > ) //处理每一次输入
{
i = ;
flag = TRUE;
scanf("%s", input);
length = strlen(input);
for(point_first = ; point_first < length; point_first ++)
{
if(input[point_first] == ')' || input[point_first] == ']') //如果遇到)或者]向前找匹配的括弧,将其变成#
{
point_last = point_first - ; for(; point_last >= && input[point_last] == '#'; point_last --); //向前遍历 if(point_last >= )
if((input[point_first] == ')' && input[point_last] == '(') || (input[point_first] == ']' && input[point_last] == '['))
{
input[point_last] = '#';
input[point_first] = '#';
}
else
break;
else
break;
}
}
while(i < length)
{
if(input[i] != '#')
flag = FALSE;
i++;
}
if(flag == FALSE)
printf("%s\n", "No");
else
printf("%s\n", "Yes"); num --;
} }
c判断括弧是否匹配的更多相关文章
- 【转】 解释下浏览器是如何判断元素是否匹配某个 CSS 选择器?
先产生一个元素集合,然后从后往前判断: 浏览器先产生一个元素集合,这个集合往往由最后一个部分的索引产生(如果没有索引就是所有元素的集合).然后向上匹配,如果不符合上一个部分,就把元素从集合中删除,直到 ...
- The Accomodation of Students HDU - 2444(判断二分图 + 二分匹配)
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- 隐式启动判断是否有匹配的Intent
一.PackageManager的resolveActivity public abstract ResolveInfo resolveActivity(Intent intent, int flag ...
- hdu 2444 The Accomodation of Students 判断二分图+二分匹配
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- if语句中的判断条件(nginx)
if语句中的判断条件 正则表达式匹配: ==:等值比较; ~:与指定正则表达式模式匹配时返回"真",判断匹配与否时区分字符大小写: ~*:与指定正则表达 ...
- JS中正则匹配的三个方法match exec test的用法
javascript中正则匹配有3个方法,match,exec,test: match是字符串的一个方法,接收一个RegExp对象做为参数: match() 方法可在字符串内检索指定的值,或找到一个或 ...
- ACM-括号匹配问题
对ACM仰慕已久,无奈今天才开始.好吧,遇到的第二个题目就把我难到了.(实话是第一个) 进入正题,下面Copy出题目: 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0 ...
- 南阳理工ACM 括号匹配问题,并求出使得括号能够匹配需要新增的最小括号数(括号匹配(二))
描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起 ...
- 关于实现判断用户是在PC端和还是移动端访问。
最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的体验.伴随Android平台的红火发展.不仅带动国内智能手机行业,而且许多国内开发者也开始投身于Android移动终 ...
随机推荐
- 十四、Struts2的国际化
十四.Struts2的国际化 1.配置全局国际化消息资源包 配置全局消息资源包 <!--配置全局消息资源包 --> <constant name="struts.c ...
- Composer -- PHP依赖管理的用法
1:下载 1.1:方法一: 通过PHP来安装 cd /home/composer curl -sS https://getcomposer.org/installer | php #这个命令会下载c ...
- linux下最大文件数
系统级:系统级设置对所有用户有效.可通过两种方式查看系统最大文件限制1 cat /proc/sys/fs/file-max 2 sysctl -a 查看结果中fs.file-max这项的配置数量如果需 ...
- Apache开启Proxy代理,实现域名端口转发
今天帮客户迁移网站,客户一个是ASPX的一个是PHP的网站,这时候有2个域名,可是php网站是Apache下的伪静态,必须要用到Apache,但是ASPX网站还必要到IIS+Mssql 然后到了这个时 ...
- c#中执行多条sql语句【ORA-00911: 无效字符】
问题描述: 在plsql里执行多条sql语句的时候,使用“,”(逗号)分隔,测试可以执行多条,而在C#执行多条sql语句的时候[ORA-00911: 无效字符]. 有时我们需要一次性执行多条sql语句 ...
- 关于MongoDb Replica Set的故障转移集群——实战篇
如果你还不了解Replica Set的相关理论,请猛戳传送门阅读笔者的上一篇博文. 因为Replica Set已经属于MongoDb的进阶应用,下文中关于MongoDb的基础知识笔者就不再赘述了,请参 ...
- reader,字符流
1. public class Demo1 { public static void main(String[] args) throws IOException { File file = new ...
- mssql 下删除 default 值的Sql写法
FROM Sys.default_constraints a JOIN sys.columns b ON a.parent_object_id = b.object_id AND a.parent_c ...
- js验证表单大全
js验证表单大全 1. 长度限制 <script> function test() { if(document.a.b.value.length>50) { alert(" ...
- Android SDK中国在线更新镜像服务器 解决GOOGLE更新无法下载 更新失败的问题
Android Tools Android SDK在线更新镜像服务器 中国科学院开源协会镜像站地址: IPV4/IPV6: http://mirrors.opencas.cn 端口:80 IPV4/I ...