红桃J

用心写好每行完美的代码,远比写一堆更有价值

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

代码:

 1 #include<iostream>
 2 #include<stack>
 3 #include<map>
 4 
 5 using namespace std;
 6 
 7 bool isValid(string s) {
 8     map<char, char> smap;
 9     smap.insert(make_pair('(', ')'));
10     smap.insert(make_pair('[', ']'));
11     smap.insert(make_pair('{', '}'));
12     stack<char> ss;
13     int i=0;
14     int L = s.length();
15     while (i<L)
16     {
17         char c = s[i];
18         if (!ss.empty()&&c==smap[ss.top()])
19         {
20             ss.pop();
21         }
22         else
23         {
24             ss.push(c);
25         }
26         i++;
27     }
28     if (ss.empty())
29     {
30         return true;
31     }
32     else
33         return false;
34 }
35 
36 int main()
37 {
38     cout << isValid("()[()]") << endl;
39 }

 

posted on 2015-04-15 10:31  红桃J  阅读(99)  评论(0编辑  收藏  举报