zoukankan
html css js c++ java
括号匹配(栈实现)
#include <cstdio> #include <iostream> using namespace std; #define MAXSIZE 20 typedef struct { char *base; char *top; int stacksize; }SqStack; void InitStack(SqStack &S) { S.base = (char *)malloc( MAXSIZE * sizeof(char) ); if(S.base == NULL) exit(-2); S.top = S.base; S.stacksize = MAXSIZE; } void GetTop(SqStack S, char &e) { if(S.top == S.base) return; e = *(S.top - 1); } void Push(SqStack &S, char e) // 不考虑栈满 { *S.top++ = e; } void Pop(SqStack &S, char &e) { if(S.top == S.base) return; S.top--; e = *S.top; } bool Match(char c, SqStack &my_stack, bool &tag) { char e; Pop(my_stack, e); if ( c != e ) { tag = false; free(my_stack.base); return false; // match fail } return true; // match success } void Correct(char *expr, bool &tag) { tag = true; SqStack my_stack; InitStack (my_stack); for( int i = 0; expr[i] != '\0'; i++ ) { char c = expr[i]; switch(c) { case '{' : case '[' : case '(' : Push (my_stack, c); break; case '}' : if( Match('{', my_stack, tag) == false ) // match fail return; break; case ']' : if( Match('[', my_stack, tag) == false ) // match fail return; break; case ')' : if( Match('(', my_stack, tag) == false ) // match fail return; break; default : break; // 其它字符 } } if(my_stack.top != my_stack.base) // e.g.: "[r" tag = false; free(my_stack.base); } int main(void) { // freopen("cin.txt", "r", stdin); char my_expr[MAXSIZE]; while(cin >> my_expr) { bool tag = true; Correct( my_expr, tag); tag ? printf("匹配成功\n") : printf("匹配失败\n"); } return 0; }
(另见
http://blog.csdn.net/justme0/article/details/7424798
)
查看全文
相关阅读:
MySQL高可用架构之MHA
DateTimeFormatter
mysql实现行拼接、列拼接
图形数据库 Neo4j 开发实战
除了信号触发线程与接收者线程相同的情况能直接调用到slot,其它情况都依赖事件机制(解决上面代码收不到信号的问题其实很简单,在线程的run();函数中添加一个事件循环就可以了,即加入一句exec();),信号槽不就是一个回调函数嘛
moveToThread的根本目的还是为了处理QObject的事件循环(如果为空指针的话,当前对象的所有的事件都不处理了),看官方说明就知道了
专访紫光刁石京:资本追逐下产业“过热” 人才培养需塌下心(企业这么多年好不容易积累起来的人才队伍,被别人这么一挖,一切付诸东流)
为QML创建C++插件(下载)
Qt Quick Controls 与 Qt Quick Controls 2的区别(详细对照)
asp.net core zipkin
原文地址:https://www.cnblogs.com/jjtx/p/2533501.html
最新文章
【自然语言处理(二)】朴素贝叶斯
(十三)golang--程序流程控制
【原创】python倒排索引之查找包含某主题或单词的文件
(十二)golang--进制和位运算
(十一)golang--键盘输入
Thrift在Windows及Linux平台下的安装和使用示例
VLC播放RTSP视频延迟问题
H264码流结构分析和rtp打包结构详解
rtmp,rtsp,hLS区别
H.264视频编解码SoC满足高清DVR设计需求
热门文章
onvif开发总结
onvif规范的实现:server端Discovery实现,通过OnvifTestTool12.06测试
Linux下用gSOAP开发Web Service服务端和客户端程序(一)
ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端
JDK8 Stream 数据流效率分析
Java 8 中的 Streams API 详解
spingBoot myBatis neo4j整合项目案例
Java连接Neo4j的两种方式
Windows安装MongoDB .zip绿色版
win10下安装mongodb(解压版)
Copyright © 2011-2022 走看看