PPTV面试题——括号消除
来源:互联网 发布:儿童桌面软件 编辑:程序博客网 时间:2024/04/30 13:26
题目:
给定一个字符串,设计一个算法消除其中承兑的括号,如果括号不成对,提示异常(error)
如(1,(2,3),(4,(5,6),7))转化为1,2,3,4,5,6,7
如(1,)2,3),(4,(5,6(,7))提示error。
分析:
很容易想到用栈存储括号,做括号压栈,右括号弹栈,剩下的字符依次存储输出。(如果对空栈进行弹栈操作则提示error,即:括号不成对)。
算法代码:
void clearBrackets(string & myString){ stack<char> stackOfBrackets; string clearString; for (int i = 0; i < myString.size(); ++i) { if ('(' == myString[i]) { stackOfBrackets.push(myString[i]); } else if (')' == myString[i]) { if (!stackOfBrackets.empty()) { stackOfBrackets.pop(); } else { cout << "error" << endl; return; } } else { clearString.push_back(myString[i]); } } cout << clearString; cout << endl; return;}
测试代码:
//// main.cpp// clearBrackets//// Created by Jiajie Zhuo on 2017/4/3.// Copyright © 2017年 Jiajie Zhuo. All rights reserved.//#include <iostream>#include <string>#include <stack>using namespace std;void clearBrackets(string & myString);int main(int argc, const char * argv[]) { string myString; cout << "Please enter the string: "; cin >> myString; clearBrackets(myString); return 0;}
总结:
对于字符串的操作最好采用STL,会方便很多(拼接,插入,删除等)。
0 0
- PPTV面试题——括号消除
- 【面试题】括号匹配
- 常见面试题系列1——原地消除字符串连续的空白字符
- #面试题# 括号匹配问题
- <实例>消除内嵌括号——使用栈实现
- lintcode&九章算法——Google面试题 | 有效括号字符串 ? 待解决
- 轩辕互动 面试题 数括号
- 面试题之括号匹配分析
- 数据库—面试题
- PPTV
- 消除嵌套括号
- [pptv]笔试题——字符串匹配 python
- 嵌入式面试题——ARM面试题(二)
- 嵌入式面试题——ARM面试题(三)
- 嵌入式面试题——ARM面试题(四)
- 嵌入式面试题——ARM面试题(五)
- 嵌入式面试题——ARM面试题(六)
- OC ——面试题
- HDU 2647:Reward
- numpy模块笔记之linspace
- Tomcat安装后出现the JRE_HOME environment variable is not defined correctly
- 循环依赖 导致 registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregist
- Drools 之 KieModule 版本管理
- PPTV面试题——括号消除
- set的简单应用
- 嵌入式软件调试方法
- python下载数据集存放位置
- oj刷题—Problem J: 螺旋方阵
- python笔记之可变参数* and **
- 网易面试题——双核处理
- UVALive
- HDU3183 A Magic Lamp —— 贪心(单调队列优化)/ RMQ / 线段树