字符串中左右括号匹配判断_第1页
字符串中左右括号匹配判断_第2页
字符串中左右括号匹配判断_第3页
字符串中左右括号匹配判断_第4页
字符串中左右括号匹配判断_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、字符串中左右括号匹配判断一、要求: 判断一个字符串中的小括号是否匹配。例如,字符串“()()”中的小括号匹配,而“)()”中的小括号不匹配。如果匹配则提示匹配,如果不匹配则提示第一个不匹配的括号的位置。   二、 效果:   三、思路: 得到字符串,从头开始,一个一个字符判断。 (1) 如果是左括号则压入栈中。 (2) 如果是右括号,则将一个左括号从栈中弹出,匹配一对。若此时栈中无元素,那么这个右括号没有匹配的左括号。 最后,如果栈不为空,则有左括号没有匹配。   四、核心代码: for(i = 0; i < 

2、;brackets.length(; i+         if(bracketsi = '('         /1.left bracket            bracketStack.push('(' 

3、60;          if(bracketStack.size( = 1                 bottom = i;             &

4、#160;      else if (bracketsi = ''         /2.right bracket            if(!bracketStack.empty(      &#

5、160;          tmp = bracketStack.top(;                bracketStack.pop(;             else 

6、                res = nMatch;                /move to wrong position        

7、;        i+;                break;                        &#

8、160;   /ingore non bracket       五、所有代码:   代码 /BracketMatch.cpp/judge a string whether is brackets match'(' and '' string,/while not match,return first positio

9、n/powered by alan/2010.10.14#include  #include <string>#include  using namespace std;int main(     /define data    string brackets = ""    stack<char>

10、60;bracketStack;    char tmp;    enum Resmatched,nMatchres;    res = matched;    int bottom = 0;        /get input    co

11、ut<<"输入需要匹配的括号串"<     cin>>brackets;           /judge      int  i;      for (i =  0 ; i < brackets.length(; i+     &#

12、160;     if (bracketsi =  '('            /1.left bracket             bracketStack.push( '(' ;         &#

13、160;    if (bracketStack.size( =  1                   bottom = i;                     

14、;  else   if  (bracketsi =  ''            /2.right bracket              if (!bracketStack.empty(           

15、       tmp = bracketStack.top(;                 bracketStack.pop(;               else      

16、;             res = nMatch;                  /move to wrong position           &

17、#160;     i+;                  break ;                            

18、0;   /ingore non bracket                /have '(' not match      if (!bracketStack.empty(         res = nMatch;          /get the first not match         i = 

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论