码迷,mamicode.com
首页 > 其他好文 > 详细

判断字符串中的括号是否成对出现

时间:2018-09-18 16:11:42      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:sys   解决   style   empty   argc   using   结束   ==   als   

基本思路:可用栈来解决;遍历字符串,如果遇到左括号,则将左括号入栈,如果遇到右括号,则判断栈顶的元素是否为左括号,如果为左括号则弹出栈顶元素,然后继续字符串遍历,遍历结束后,如果栈为空,则认为括号是成对出现。

下面贴上实现代码:

 1 #include <iostream>
 2 #include <stack>
 3 using namespace std;
 4 
 5 int _tmain(int argc, _TCHAR* argv[])
 6 {
 7     string sss = "((1+(2+3))+6))";
 8     stack<char> st;
 9     bool bFlag = true;
10     for (auto ch : sss)
11     {
12         if (ch == ()
13         {
14             st.push(ch);
15         }
16         else
17         {
18             if (ch == ))
19             {
20                 if (st.empty())
21                 {
22                     bFlag = false;
23                     break;
24                 }
25                 else
26                 {
27                     st.pop();
28                 }
29             }
30         }
31     }
32     if (st.empty() && bFlag)
33     {
34         cout << "pipei" << endl;
35     }
36     else
37     {
38         cout << "bu pipei" << endl;
39     }
40 
41     system("PAUSE");
42     return 0;
43 }

 

判断字符串中的括号是否成对出现

标签:sys   解决   style   empty   argc   using   结束   ==   als   

原文地址:https://www.cnblogs.com/Trony/p/9669042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!