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

7-2 括号匹配 (25分)

时间:2020-01-20 00:23:59      阅读:540      评论:0      收藏:0      [点我收藏+]

标签:检查   ios   匹配   否则   ring   get   符号   class   int   

给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。

输入格式:

输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。

输出格式:

如果括号配对,输出yes,否则输出no。

输入样例1:

sin(10+20)

输出样例1:

yes

输入样例2:

{[}]

输出样例2:

no
 1 #include<iostream>
 2 #include<stack>
 3 #include<string>
 4 using namespace std;
 5 
 6 bool judge(string s)
 7 {
 8     stack<char>stk;
 9     for (int i = 0; i < s.length(); i++)
10     {
11         switch (s[i])
12         {
13         case (:stk.push(s[i]);
14             break;
15         case [:stk.push(s[i]);
16             break;
17         case {:stk.push(s[i]);
18             break;
19         case ):
20             if (stk.empty())
21                 return false;
22             if (stk.top() == ()
23                 stk.pop();
24             else
25                 return false;
26             break;
27         case ]:
28             if (stk.empty())
29                 return false;
30             if (stk.top() == [)
31                 stk.pop();
32             else
33                 return false;
34             break;
35         case }:
36             if (stk.empty())
37                 return false;
38             if (stk.top() == {)
39                 stk.pop();
40             else
41                 return false;
42             break;
43         }
44     }
45     return stk.empty();
46 }
47 int main()
48 {
49     string s;
50     getline(cin,s);
51     if (judge(s))
52         cout << "yes";
53     else
54         cout << "no";
55 }

7-2 括号匹配 (25分)

标签:检查   ios   匹配   否则   ring   get   符号   class   int   

原文地址:https://www.cnblogs.com/luoyoooo/p/12215774.html

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