字符串匹配问题x
#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; struct stack {
char strstack[];
int top;
}; void InitStack(stack &s) {
s.top=-;//将栈顶元素赋值为-1,便于检验是否空
} char push(stack &s,char a) {
if(s.top==) {
return ;//说明栈已满
}
s.top++;//栈顶++
s.strstack[s.top]=a;//将栈顶元素赋值为a
return a;
} char pop(stack &s) {
if(s.top==-) { //如果栈顶空了,则不出栈
return ;
}
char a=s.strstack[s.top--];
return a;//返回字符检验是否为‘([{’
} int empty(stack &s,int re) {
if(s.top==-) {//如果栈空了,说明暂时匹配,则返回1,为真
return ;
} else {//如果没有空,说明暂时不匹配,则返回0,为假
return ;
}
} int check(char *str) {
stack s;
InitStack(s);
int st=strlen(str);
for(int i=; i<st; i++) {
char a=str[i];
switch (a) {
case '(':
case '[':
case '{':
push(s,a);
break;
case ')':
if(pop(s)!='(') {
return ;
}
break;
case ']':
if(pop(s)!='[') {
return ;
}
break;
case '}':
if(pop(s)!='{') {
return ;
}
break;
}
}
int re=;
re=empty(s,re);
if(re==) {
return ;
} else {
return ;
}
} int main() {
char str[];
cin>>str;
int re=check(str);//用re来传递真假
if(re==) {
cout<<"YES"<<endl;
} else if(re==) {
cout<<"NO"<<endl;
}
}
字符串匹配问题x的更多相关文章
- 字符串匹配的KMP算法
~~~摘录 来源:阮一峰~~~ 字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”? 许 ...
- {Reship}{KMP字符串匹配}
关于KMP字符串匹配的介绍和归纳,作者的思路非常清晰,推荐看一下 http://blog.csdn.net/v_july_v/article/details/7041827
- 字符串匹配(hash算法)
hash函数对大家来说不陌生吧 ? 而这次我们就用hash函数来实现字符串匹配. 首先我们会想一下二进制数. 对于任意一个二进制数,我们将它化为10进制的数的方法如下(以二进制数1101101为例): ...
- 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- sdut 2125串结构练习--字符串匹配【两种KMP算法】
串结构练习——字符串匹配 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目链接:http://acm.sdut.edu.cn/sduto ...
- C语言字符串匹配函数
C语言字符串匹配函数,保存有需要时可以用: #include <stdio.h> #include <stdlib.h> #include <string.h> # ...
- 字符串匹配--Karp-Rabin算法
主要特征 1.使用hash函数 2.预处理阶段时间复杂度O(m),常量空间 3.查找阶段时间复杂度O(mn) 4.期望运行时间:O(n+m) 本文地址:http://www.cnblogs.com/a ...
- 字符串匹配的KMP算法详解及C#实现
字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD" ...
- zstu.4194: 字符串匹配(kmp入门题&& 心得)
4194: 字符串匹配 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 206 Solved: 78 Description 给你两个字符串A,B,请 ...
- 字符串匹配与KMP算法实现
>>字符串匹配问题 字符串匹配问题即在匹配串中寻找模式串是否出现, 首先想到的是使用暴力破解,也就是Brute Force(BF或蛮力搜索) 算法,将匹配串和模式串左对齐,然后从左向右一个 ...
随机推荐
- [游戏复刻] 2048(2014. Android)
等哪一天我有很多很多的时间再写吧...
- Python 第一节随堂练习
作业: 1 从键盘输入一个整数,判断该数字能否被2和3同时整除,能否被2整除,能否被3整除,不能被2和3整除,输出相应信息 1 my_num = int(input('请输入一个整数')) 2 if ...
- php 压缩接口
function rtnJson($obj) { if (!headers_sent() && // 如果页面头部信息还没有输出 extension_loaded("zlib ...
- poj 3468 整理一下线段树的写法
// 对于延迟更新,我们在updata 和query的时候 pushdown和pushup两个东西都要存在 #include <iostream> #include <cstdio& ...
- c# http文件上传
/// <summary> /// 上传文件的api /// </summary> [HttpPost] public string UploadFile(op_client_ ...
- Eclipse MyEclipse 反编译.class文件 myeclipse source not found
首先,需要下载两个必须的插件包. 一个是:准备反编译需要的jad.exe 下载地址:http://varaneckas.com/jad/ 二个是:反编译编辑器net.sf.jadclipse_3.3. ...
- Spark面试知识点-SparkSQL(1)
0.介绍: (1)Spark SQL的前身是Shark,即Hive on Spark, 1.SparkSQL特点: (1)支持多种数据源:Hive,RDD,Parquet,JSON,JDBC等. (2 ...
- PhpStorm添加PHP代码规范检查CodeSniffer(phpcs)和PHP代码静态分析工具Mess Detector(phpmd)
一.安装 添加镜像,加速下载 ./composer.phar config -g repo.packagist composer https://packagist.phpcomposer.com ...
- HTML5学习:表格
HTML代码 <table> <thead> <tr> <th>标题1</th> <th>标题2</th> < ...
- 开启aix SFTP日志 是否和链接SFTP有关呢
1.修改SSH配置 vi /etc/ssh/sshd_config 在sftp配置处添加-l INFO -f AUTH Subsystem sftp /usr/lib64/ssh/sftp-serve ...