2017网易互娱笔试题----括号匹配
来源:互联网 发布:潍柴网络采购平台 编辑:程序博客网 时间:2024/05/16 16:22
题目描述
对于一行代码(字符串),里面可能出现大括号“{}”、中括号“[]”和小括号“()”,请编程判断改行代码的括号嵌套是否正确。
“()”,“({})”,“printf('Hello Netease')”等都是括号使用的正确方法,“(}”,"print(Hello Netease]"则是错误的范例。
输入描述
输入包含一行,为一行包含括号的字符串(字符串长度不超过1000)
输出描述
输出为true或者false
思路:
可以采用栈解题,对字符串进行遍历,每当遇到左括号,则push该左括号到栈中,若遇到右括号,则将栈顶的元素和其进行配对(注意判断栈是否为空),若为与之匹配的左括号,则pop该元素,否则输出false并return。
遍历结束后若栈不为空则输出false并return;
#include <iostream>#include <string>using namespace std;const int STACK_CAPACITY = 128;typedef char StackElement;struct Stack{StackElement data[STACK_CAPACITY];int top;};typedef Stack *StackPointer;void Push(StackPointer stack, StackElement item){stack->data[++(stack->top)] = item;return;}void pop(StackPointer stack){stack->top--;}int main(){int num = 0;string str;cin >> str;StackPointer stack = (StackPointer)malloc(sizeof(Stack));stack->top = -1;for (int i = 0; i < str.size(); ++i){if (str[i] == '(' || str[i] == '{' || str[i] == '[')Push(stack, str[i]);if (str[i] == ')'){if (stack->top != -1 && stack->data[stack->top] == '('){num++;pop(stack);}else{cout << "false";return 0;}}else if (str[i] == ']'){if (stack->top != -1 && stack->data[stack->top] == '['){num++;pop(stack);}else{cout << "false";return 0;}}else if (str[i] == '}'){if (stack->top != -1 && stack->data[stack->top] == '{'){num++;pop(stack);}else{cout << "false";return 0;}}}if (stack->top != -1){cout << "false";return 0;}cout << "true";return 0;}
阅读全文
0 0
- 2017网易互娱笔试题----括号匹配
- 网易2016实习笔试:括号匹配问题
- 【网易笔试题】成对的括号
- 网易2017秋招笔试题3:最长公共子括号序列长度
- 网易互娱2017笔试题----最大数
- 京东笔试 括号匹配
- 网易笔试最长公共子括号序列
- 2017网易校招内推笔试题
- 用栈来实现括号匹配之优酷笔试题
- 京东笔试:括号匹配 ---- 逆向思维题
- 京东笔试题2:求括号匹配数目
- 华为笔试题--LISP括号匹配 解析及源码实现
- 网易实习生笔试题 - 卡密模糊匹配
- 网易互娱2017实习生招聘在线笔试(一)
- 网易互娱2017实习生招聘在线笔试(二)
- 网易互娱2017实习生招聘在线笔试(三)
- 网易互娱2017实习生招聘在线笔试(一)
- 笔试面试算法经典--最长括号匹配
- 计算机网络之五层协议
- 激活010Editor
- Windows Practice_文件_文件分割器(一)
- 一位Acmer过来人的经验
- Apache-DBCP数据库连接池解读
- 2017网易互娱笔试题----括号匹配
- 折腾IronPython 一晚,没搞通
- C# 远程服务器 创建、修改、删除 应用程序池 网站
- 【笔记】B-树的理解
- 完美解决PermGen space,多项目下tomcat挂掉
- 进入攻击范围
- VR干货:如何将你的游戏上架Oculus PSVR VIVE等平台
- 三网 —— 计算机网络、电信网络、广播电视网络(移动网络)
- Java基础之集合框架--Collections的fill()方法和replaceAll()方法