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


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

    下面贴上实现代码:

     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 }
  • 相关阅读:
    去逛了一下浙东大峡谷
    终于开始释然
    其实在天堂AS IT IN HEAVEN
    寝室全景照
    黑与白
    努力下的意外
    文曲星的存在意义
    强烈推荐文章,给那些头脑发晕的看看
    学友演唱会
    最喜欢的歌
  • 原文地址:https://www.cnblogs.com/Trony/p/9669042.html
Copyright © 2020-2023  润新知