Serendipity丶


私信TA

用户名:uq_38590416266

访问量:2433

签 名:

别人的屋檐再大,不如自己手中有伞

等  级
排  名 64
经  验 10627
参赛次数 0
文章发表 33
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

唯有提高自己的核心竞争能力,才可在逆流中不断前进。

解题思路:

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;

int main()

{

stack<char>q;

string s;

cin >> s;

q.push(s[0]);//先将第一个输入栈里面 方便 

for(int i = 1; i < s.size() ;i++)

{

if(s[i] == '(' || s[i] == '[')//遇到这种只能进栈 

{

q.push(s[i]);

continue;//跳出该次循环 节约时间 

}

else//只有 [ || ) 这俩种情况 

{

if(!q.empty())//不为空 

{

char c = q.top();//提出前面一个元素 

   if((c == '(' && s[i] ==')') || (c == '[' && s[i] == ']'))//可以匹配 前面元素出栈 

{

q.pop();

continue;

}

q.push(s[i]);//前面条件都不符合 则将[ 或者 ) 进栈 

}

else q.push(s[i]);//这为 如果前面栈为空 直接进栈 和第一个if对应 

}

}

if(!q.empty())//还有元素 则未完全匹配 

cout << "Wrong";

else cout << "OK"; 

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »