之前大风dalao使用堆栈实现了括号匹配,但毕竟堆栈是过于超前的内容,很多小伙伴看不懂。因而分享一下自己做的非堆栈型括号匹配代码。

Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.

//
// Source Code.cpp
//
// Common Test Emilia
//
// Created by Emilia on 2016/11/20
// Copyright © 2016 Emilia. All rights reserved.
//#include<stdio.h>
#include<string.h>int sym[100], pos = 0, length, times, cor = 0;
char input[100];int main(void)
{scanf("%s", &input);length = strlen(input); //在输入之后,利用strlen命令获取当前数组有效位长度。//主要是为了给之后的判断模块提供循环次数。//由于DDL的推后,特意修改了部分代码,因而该公开版本并不完美,存在严重的圈复杂度超标问题,仅供思路上的交流。
//尽管在圈复杂度上有一定缺陷,但通过一定的修饰之后本代码可以达到满分。
//诶?你问我怎么修饰……等DDL过了再说吧~for (times = 0;times < length;times++) //判断模块{if (input[times] == '(')sym[++pos] = 1;elseif (input[times] == '[')sym[++pos] = 2;elseif (input[times] == '{')sym[++pos] = 3;elseif (input[times] == ')' && sym[pos--] == 1)cor = 1;elseif (input[times] == ']' && sym[pos--] == 2)cor = 1;elseif (input[times] == '}' && sym[pos--] == 3)cor = 1;else{printf("False\n");cor = 3;times = length;}}if (cor == 1){printf("True\n");}else if (cor != 3){printf("False\n");}getchar();getchar(); //两个getchar()命令主要是方便VS下查看运行结果。return 0;
}}

【艾米莉娅】matrix:valid parentheses括号匹配代码分享(非堆栈版)相关推荐

  1. 【艾米莉娅】Sicily:1001. Alphacode 代码分享

    Code in C Language for SOJ 1001. Alphacode (代码没啥注释是因为后天要考四级却还没有复习) 事情是这样的(:з)∠)_ 某日突然知道中大还有类似于POJ的SO ...

  2. 括号匹配问题(C++、堆栈)

    原文地址:http://www.cppblog.com/GUO/archive/2010/09/12/126483.html /* 括号匹配问题,比较经典,利用堆栈来实现(摘自internet)1. ...

  3. 数据结构括号匹配代码_数据结构中的栈,你知道多少?

    由于栈比较简单,也很容易理解,学过的人都知道一句话就可以描述栈的特性:后进先出.所以这篇文章主要是写如何使用代码来描述栈,当然也是让大家很容易理解的语言.还是先给出这篇文章的大致脉络. 首先,对栈有一 ...

  4. 7-3 括号匹配 (20分)(C语言版)

    给定一串字符,不超过100个字符,可能包括括号.数字.字母.标点符号.空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配. 输入格式: 输入在一行中给出一行字符串,不超过100个字符,可能包 ...

  5. python实现括号匹配代码_python实现括号匹配的思路详解

    1.用一个栈[python中可以用List]就可以解决,时间和空间复杂度都是O(n) # -*- coding: utf8 -*- # 符号表 SYMBOLS = {'}': '{', ']': '[ ...

  6. 数据结构括号匹配代码_栈:如何实现有效括号的判断?

        点击上方蓝字,关注:无量测试之道    作者 | 无量测试之道   编辑 | 小 晴有效括号,刷过LeetCode的也许对这道题很熟悉. 1.开篇问题:有效的括号[1] 假如现在要你来解这道题 ...

  7. 最长有效括号子串长度 c语言,LeetCode: Longest Valid Parentheses (求最长有效匹配括号子串的长度)...

    题目描述: Given a string containing just the characters'(' and')', find the length of the longest valid ...

  8. LeetCode 之 JavaScript 解答第20题 —— 有效的括号(Valid Parentheses)

    Time:2019/4/11 Title: Valid Parentheses Difficulty: Easy Author: 小鹿 题目:Valid Parentheses Given a str ...

  9. LeetCode 20. 有效的括号(Valid Parentheses)

    栈思想 关于有效括号表达式的一个有趣属性是有效表达式的子表达式也应该是有效表达式. 整个表达式是有效的,而它的子表达式本身也是有效的.这为问题提供了一种递归结构.(栈思想) 从整体表达式中一次删除一个 ...

最新文章

  1. 【每日一题】212. 单词搜索 II
  2. IT十八掌作业_java基础第八天_多线程
  3. 计算机vb输入框函数,VB数据输入函数inputbox
  4. Amazon S3数据存储
  5. STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
  6. Linux opencv安装与编译
  7. 第三章 使用Servlet处理HTTP响应
  8. apache站点优化—数据压缩
  9. LeetCode Valid Sudoku
  10. Redis中的Cluster总结
  11. 普中51控制火焰传感器_传感器检测:以后,电动车充电会变成这样
  12. pythonos模块介绍_python的os模块fnmatch模块介绍
  13. iOS JSPatch 热修复使用
  14. mariadb安装_MariaDB CentOS 安装的时候如何确定 Repo 地址
  15. calendar控件使用 extjs_extjs年月选择日历及通用js同步ajax调用返回json object
  16. Windows下使用nas服务器——映射网络驱动器
  17. 利用python合并关联两个表中的数据
  18. 前端标注软件-pxcook像素大厨使用心得
  19. 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
  20. 悲伤是一种毒,会上瘾

热门文章

  1. 网址转二维码,如何批量将网址转为二维码
  2. 【WeChatPay】微信支付V3学习笔记(一)
  3. 来啦!华为将携手伙伴深入百强区县,共创地市价值新空间
  4. 赚钱宝背后的CDN技术演进
  5. 用微信怎样将PDF文件转Word
  6. 跑步时戴什么耳机好,盘点五款最适合运动的耳机排行
  7. Android Bluetooth 架构
  8. Kafka为什么高吞吐量
  9. Windows Server 2019服务器远程桌面服务部署+深度学习环境配置教程
  10. string函数小结