百度面试题目--删除字符串中嵌套的括号
来源:互联网 发布:淘宝交保证金可以退吗 编辑:程序博客网 时间:2024/04/28 01:03
题目要求:对形如"(1,2, 3,(4,5,(6,5),8,4)),(2,3,(1,2),4,5)"的字符串进行处理,如果存在括号嵌套情况(....(...)...),将里面的括号删除。
处理思想:
设置count,用来记录当前待匹配删除的‘(’的个数,count初值设为-1,这样是为了保证不会把最外层的括号给删除掉,当然,初值设为0,然后修改判断也可,只是意义表达会不明确,你说呢?每次读到一个‘(’,count立刻+1,然后判断此时的‘(’是不是最外层的【count=0】,不是的话【count>0】就删除这个括号;每次读到')',则根据count值来判断当前的‘)’是不是最外层的【count>0,说明还有嵌套的‘(’需要匹配,所以当前的‘)’肯定不是最外围的】,则删除当前的右括号,count-1。
// DeleteRepeatBrackets.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <IOSTREAM>#include <STRING>#include <STACK>using namespace std;bool IsMatched(const string & pStr){if (pStr.empty()){return true;}stack<char> brackets;string::const_iterator iter;for (iter=pStr.begin();iter<pStr.end();iter++){if (*iter=='('){brackets.push(*iter);}else{if (*iter==')'){if (brackets.size()>0&&brackets.top()=='('){brackets.pop();} else{return false;}}}}if (brackets.size()==0){return true;} else{return false;}}void DeleteRepeatBrackets(string & pStr){if (pStr.empty()){return;}int count=-1;string::iterator iter;for(iter=pStr.begin();iter<pStr.end();iter++){if (*iter=='('){++count;if (count>0){pStr.erase(iter);iter--;//调用erase时,iter会自动指向下一个元素,必须手动-1,否则for里再+1会跳过下一个元素}}else{if (*iter==')'){if (count>0){pStr.erase(iter);iter--;}--count;}}}}int main(int argc, char* argv[]){string str="(1,2, 3,(4,5,(6,5),8,4)),(2,3,(1,2),4,5)";if(IsMatched(str)){cout<<"括号匹配成功"<<endl;DeleteRepeatBrackets(str);cout<<str<<endl;}else{cout<<"括号不匹配"<<endl;}return 0;}
- 百度面试题目--删除字符串中嵌套的括号
- 百度面试题目的答案
- 一个百度的面试题目
- 一个百度的面试题目
- C++ 字符串删除匹配括号及括号里的内容
- 面试:字符串:产生括号
- 面试:字符串:产生括号
- 百度很有意思的一道面试题目
- 百度面试的两道题目
- 字符串去除嵌套括号内容
- 百度电话面试题目
- 百度面试题目
- 百度面试题目
- 百度前端面试题目
- 百度面试题目分享
- 百度面试题目总结
- 百度面试题目
- 算法面试字符串-题目2-删除和复制
- 【Oracle】Oracle基础学习
- Linux面试题大全
- LeetCode 之 Remove Duplicates from Sorted Array
- java串口编程
- 登出后,通过JavaScript处理浏览器的后退按钮
- 百度面试题目--删除字符串中嵌套的括号
- 《REWORK》启示录 如何产生、销售代码的副产品
- 线性代数导论30——奇异值分解
- 【js学习笔记-073】-------打开和关闭窗口
- Clean Code CH9 CH10
- 有向图找环的Python实现
- Live555之路--“初识live555与搭建开发环境”
- 简单理解数据库三大范式
- Activity动画切换